У меня есть процесс, который мне нужно запустить при запуске. Это то, что должно работать все время, пока машина включена. На данный момент я просто набираю следующее в bash все, что запускаю мой сервер.
command -f argument & disown
Я знаю, что мне нужно сделать сценарий инициализации, но я понятия не имел, как. После некоторых исследований кажется, что Ubuntu использует systemd (в некоторых ссылках сказано, что Upstart не так?) В качестве системы инициализации. Но все руководства, которые я нашел в Интернете, говорят мне, чтобы поместить мой исполняемый файл в /etc/init
или /etc/init.d
. Предполагается, что init - это совершенно другая система инициализации.
Может кто-нибудь указать мне правильное направление? Пример сценария systemd или даже онлайн-руководство будет очень полезным.
Вам нужны два файла:
Ваш файл сценария:
command.sh
.service
файл, который будет помещен в /etc/systemd/system
и, учитывая разрешение 644
с chmod 664 command.service
:
command.service
Самое простое содержание command.service
был бы:
[Unit]
Description=Some service description
[Service]
ExecStart=/bin/bash -c "/path/to/command.sh -f argument & disown"
[Install]
WantedBy=multi-user.target
Теперь, чтобы заставить его запуститься при начальной загрузке мы используем systemd
контроллер systemctl
:
sudo systemctl enable command
# or
sudo systemctl enable command.service
Обратите внимание, что намного больше опций доступно для различных разделов, видит здесь и удостоверяется Ваш command.sh
исполняемый файл с chmod +x command.sh