Это действительно зависит от вашего определения «загружен». Я полагаю, вы хотите, чтобы он запускался сразу после запуска getty. Для этого вам нужно добавить свой сервис в /etc/systemd/system/getty.target.wants/
каталог. Вы также должны убедиться, что ваш файл использует код, аналогичный другим службам в этом каталоге. Для запуска пользовательского сервиса при загрузке и завершении работы (просто подает звуковой сигнал моей материнской платы), я использую следующий скрипт в/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
является исполняемым и имеет шебанг в начале.
Обратите внимание, что не все будет запущено в этот момент при загрузке, но это точка, в которой пользователю будет предложено войти в систему.
Хотя это делает использование Before=
и After=
это было для меня гораздо более понятным и на самом деле работает; Я не нашел вышеуказанный ответ достаточно информативным. Это также позволяет вам использовать и то, ExecStart=
и другое ExecStop=
, а не ограничиваться Type=simple
подобным сервисом.