Что такое start-stop-daemon в сценариях linux?

Что такое start-stop-daemon и как его использовать?

Я пытаюсь автоматизировать определенную программу для запуска. Всякий раз, когда система запускается, программа должна запускаться. Для этого я пишу script в "/etc/init.d/" месте.

Ответ 1

Это программа для управления запуском и остановкой фоновых процессов на уровне системы (демонов). Вы используете его, передавая параметры (например, файл 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)

Ответ 2

Скопируйте /etc/init.d/skeleton файл (например, в /etc/init.d/rajeevdaemon или другое доброе имя), который является оболочкой script с большим комментариев и отредактируйте его в соответствии с вашими потребностями. Затем добавьте соответствующие символические ссылки, например. /etc/rc2.d/S98rajeevdaemon и /etc/rc2.d/K98rajeevdaemon.

Подробнее о уровнях выполнения.

И последние (или будущие) дистрибутивы Linux используют все больше systemd