Назад | Перейти на главную страницу

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

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

С уважением

Рассмотрите возможность использования /etc/rc.local (выполняется как root) или crontab (выполняется от имени пользователя по вашему выбору).

Два примера:

  • /etc/rc.local

    #!/bin/sh -e
    #(Multiple lines of comments removed.)
    /usr/local/bin/your-script.sh
    exit 0
    
  • crontab (отредактировано, например, crontab -e)

    #(Multiple lines of comments removed.)
    @reboot /usr/local/bin/your-script.sh
    

Если ваш сценарий должен работать постоянно в фоновом режиме, я бы не советовал использовать rc.local или crontab, а вместо этого напишите правильный (или несколько) init.d сценарий (ы). Таким образом вы / ваша система сможете перезапустить / перезагрузить / запустить / остановить и т. Д. Демонов.

В LSB tags предоставляют некоторую ценность: «За счет документирования зависимостей времени выполнения для сценариев init.d становится возможным проверить текущий порядок загрузки, упорядочить загрузку с использованием этих зависимостей и запустить сценарии загрузки параллельно для ускорения процесса загрузки». Для получения более подробной информации перейдите на Вики Debian.

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

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

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