У меня есть сервер Debian, и мне просто нужно запустить скрипт при запуске.
Я читал, что: https://www.debian-administration.org/article/28/Making_scripts_run_at_boot_time_with_Debian
У меня есть: insserv: warning: script 'отсутствуют теги LSB и переопределяют
, поэтому похоже, что я должен добавить сейчас :
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
Теперь это выглядит безумно: как 30 строк сценария для запуска программы при запуске.
Есть ли инструмент, позволяющий сделать это простым способом?
С уважением
Если ваш сценарий является «просто сценарием» и не запускает демон, рассмотрите возможность использования /etc/rc.local
(выполняется как root) или crontab
(выполняется от имени пользователя по вашему выбору).
Два примера:
/etc/rc.local
#! / bin / sh -e
# (Удалено несколько строк комментариев.)
/usr/local/bin/your-script.sh
выход 0
crontab
(отредактировано, например, с помощью crontab -e
)
# (Удалено несколько строк комментариев.)
@reboot /usr/local/bin/your-script.sh
Редактировать 1: Просто прочтите ваш комментарий: Если ваш скрипт запускает демонов, которые должны работать постоянно, я бы не советовал использовать rc.local
или crontab
, и вместо этого напишите правильный (или несколько) init.d
скрипт (ы). Таким образом вы / ваша система сможете чисто перезапустить / перезагрузить / запустить / остановить демонов и т. Д.
Редактировать 2: Вы называете это сумасшедшим, но теги LSB
предоставляют некоторую ценность: «За счет документирования зависимостей времени выполнения для сценариев init.d становится возможным проверить текущий порядок загрузки, упорядочить загрузку с использованием этих зависимостей и запустить сценарии загрузки параллельно, чтобы ускорить процесс загрузки». Для получения более подробной информации посетите вики Debian .
(Кстати: это предупреждение, так что на самом деле, как и что с этим делать, решать только вам.)
супервизор также является опцией. Вы снова напишете несколько строк, чтобы начать работу с node.js и PHP, но их будет меньше.
Для этого вы можете использовать monitd , просто напишите какое-нибудь определение monit, и он запустит за вас демонов. Но почему вы не используете правильный способ работы со сценариями LSB? Это не так сложно написать (вы пишете всего один раз), и это самый чистый и ценный способ добиться этого.