Debian: Как запустить сценарий при запуске без написания 30 строк сценария оболочки?

У меня есть сервер 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 строк сценария для запуска программы при запуске.

Есть ли инструмент, позволяющий сделать это простым способом?

С уважением

20
задан 12 November 2015 в 16:25
3 ответа

Если ваш сценарий является «просто сценарием» и не запускает демон, рассмотрите возможность использования /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 .

(Кстати: это предупреждение, так что на самом деле, как и что с этим делать, решать только вам.)

29
ответ дан 2 December 2019 в 20:10

супервизор также является опцией. Вы снова напишете несколько строк, чтобы начать работу с node.js и PHP, но их будет меньше.

0
ответ дан 2 December 2019 в 20:10

Для этого вы можете использовать monitd , просто напишите какое-нибудь определение monit, и он запустит за вас демонов. Но почему вы не используете правильный способ работы со сценариями LSB? Это не так сложно написать (вы пишете всего один раз), и это самый чистый и ценный способ добиться этого.

0
ответ дан 2 December 2019 в 20:10

Теги

Похожие вопросы