Как создать скрипт запуска init.d

8

Я просто хочу запустить очень простую команду при запуске. Как я могу это сделать? Я искал в Google, и у него есть очень сложные примеры, но мне нужно просто запустить этот скрипт при запуске. Как я могу это сделать?

скрипт

./init.d/opscenter-agent start

СЭД
источник

Ответы:

8

Если вы хотите сделать это при запуске системы (в отличие от входа на компьютер), введите команды, которые вы хотите запустить /etc/rc.local.

Смотрите [Ubuntu] Выполнение скрипта при запуске и завершении работы .

Ли Аунг Йип
источник
ОП специально попросил сценарий init.d, чего на самом деле нет. Это связанный подход, в основном благодаря тому, что мы так поступали 30 с лишним лет назад, и более или менее никогда не делаем этого благодаря новым подходам, таким как init.d. (что, в свою очередь, не рекомендуется в пользу systemd / etc / init).
mc0e
3

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

1) Откройте «Настройки запуска приложений» ( Alt+ F2и вставьте gnome-session-propertiesи нажмите Enter),

2) Нажмите «Добавить» и выберите свой скрипт:

введите описание изображения здесь

введите описание изображения здесь


Если вы не используете графическое окружение, вы можете поместить команды прямо перед строкой exit 0в этом файле: /etc/rc.local. (Для редактирования просто вставьте в терминал sudo nano /etc/rc.local.

desgua
источник
Не хорошо, так как я использую Putty для управления сервером Debian, без графического интерфейса :)
sed
Вы можете поместить команды (или ссылку на ваш скрипт) в этот файл:/etc/rc.local
desgua
Это альтернатива сценарию init.d, который запрашивал OP.
mc0e
1

Подход /etc/rc.local будет «запускать очень простую команду при запуске», но он не является подходом сценария init.d и во многих отношениях уступает. (Это может не иметь значения, в зависимости от вашей цели).

В отличие от сценариев init.d, команды rc.local не предлагают стандартного интерфейса для запуска и остановки процесса и не дают большой возможности влиять на то, когда они запускаются в процессе запуска. Вы можете видеть в /etc/init.d/rc.localскрипте, что это выполняется после всего остального ( Required-Start: $all).

Если сценарий init.d действительно то, что вам нужно, то обычно достаточно просто взять существующий сценарий, скопировать его и отредактировать, но некоторые из существующих сценариев сложнее, чем вы хотите. Так как большинство сценариев init.d запускаются, ubuntu для этой цели предоставляет /etc/init.d/skeleton.

Также стоит посмотреть:

  • /etc/init.d/motdэто минимальный пример, который запускает что-то при запуске, но с Required-Startнастройкой параметра, когда это должно произойти.
  • /etc/init.d/cronэто простая отправная точка для процесса-демона (дайте или возьмите parse_environmentфункцию, которая вам, вероятно, не нужна).
mc0e
источник