Nó thực sự phụ thuộc vào định nghĩa của bạn về "khởi động". Tôi giả sử bạn muốn nó chạy ngay lập tức sau khi getty bắt đầu. Để làm điều này, bạn cần thêm dịch vụ của bạn vào /etc/systemd/system/getty.target.wants/
thư mục. Bạn cũng nên đảm bảo tệp của mình đang sử dụng mã tương tự với các dịch vụ khác trong thư mục này. Để chạy một dịch vụ tùy chỉnh khi khởi động và tắt máy (chỉ cần phát ra tiếng chuông bo mạch chủ của tôi) Tôi sử dụng đoạn mã sau trong/etc/systemd/system/getty.target.wants/service_name.service
[Unit]
After=systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service
Before=getty.target
IgnoreOnIsolate=yes
[Service]
ExecStart=/usr/bin/myinitscript.sh start
ExecStop=/usr/bin/myinitscript.sh stop
Type=oneshot
RemainAfterExit=true
[Install]
WantedBy=basic.target
/usr/bin/myinitscript.sh
là thực thi và có một shebang khi bắt đầu.
Lưu ý rằng không phải mọi thứ sẽ được bắt đầu tại thời điểm này trong khởi động, nhưng đây là điểm mà tại đó dấu nhắc đăng nhập xuất hiện cho người dùng
Mặc dù điều này không sử dụng Before=
và After=
, nó đối với tôi dễ hiểu hơn nhiều và thực sự hoạt động; Tôi không tìm thấy câu trả lời trên đủ thông tin. Điều này cũng cho phép bạn sử dụng cả hai ExecStart=
và ExecStop=
, thay vì bị giới hạn trong một Type=simple
dịch vụ giống như.