Что такое start-stop-daemon и как его использовать?
Я пытаюсь автоматизировать определенную программу для запуска. Всякий раз, когда система запускается, программа должна запускаться. Для этого я пишу script в "/etc/init.d/" месте.
Что такое start-stop-daemon и как его использовать?
Я пытаюсь автоматизировать определенную программу для запуска. Всякий раз, когда система запускается, программа должна запускаться. Для этого я пишу script в "/etc/init.d/" месте.
Это программа для управления запуском и остановкой фоновых процессов на уровне системы (демонов). Вы используете его, передавая параметры (например, файл pid для создания/проверки) и аргументы команды для процесса, который вы хотите запустить.
Затем вы выполните одно из двух действий:
start-stop-daemon -S [other arguments] something
start something
, если something
еще не запущен. Если он работает, ничего не делайте.
start-stop-daemon -K [other arguments] something
stop something
. Если something
не работает, ничего не делайте.
На странице man содержится дополнительная информация о различных аргументах. Как правило, шаблон предоставляется в /etc/init.d/
, который имеет другие команды для процесса init, который управляет запуском фоновых процессов.
start-stop-daemon --start --background -m --oknodo --pidfile ${PIDFILE} --exec ${DAEMON} - ${TARGETDIR}
--background
= запуск в фоновом режиме-m
= создать файл PID. Это используется, когда ваш процесс не создает свой собственный PID файл и используется с --background
--oknodo
= return 0
, а не 1
, если демона не предпринимают никаких действий--pidfile ${PIDFILE}
= проверить, был ли создан файл PID или нет--exec
= убедитесь, что процессы являются экземплярами этого исполняемого файла (в вашем случае DAEMON
)Скопируйте /etc/init.d/skeleton
файл (например, в /etc/init.d/rajeevdaemon
или другое доброе имя), который является оболочкой script с большим комментариев и отредактируйте его в соответствии с вашими потребностями. Затем добавьте соответствующие символические ссылки, например. /etc/rc2.d/S98rajeevdaemon
и /etc/rc2.d/K98rajeevdaemon
.
Подробнее о уровнях выполнения.
И последние (или будущие) дистрибутивы Linux используют все больше systemd