Автозапуск a node.js сценарий, использующий init.d в Debian

#node.js #debian #init.d

#node.js #debian #init.d

Вопрос:

У меня есть небольшое узловое приложение на сервере (node mailer), которое я запускаю, перейдя в его исходную папку и выполнив npm start. Я подумал, что лучший способ запустить это автоматически — создать my_script.sh файл и поместите его в каталог init.d моего ящика debian. Внутри файла (под строкой !#/bin/bash) код для выполнения

'/opt/mycode/source/npm start'

Я сохраняю строку в файле .sh и перезапускаю компьютер, но пока он не работает. Мой вопрос: это вообще то, как вы запускаете подобный скрипт (используя эту команду и файл .sh)? Он запускается нормально, когда я делаю это вручную (когда я перехожу к нему и запускаю npm start в терминале). Я заключил его в одинарные кавычки из-за пробела между запуском npm. Кроме того, если я хочу убедиться, что это сработало, какой процесс я должен искать, кроме простого пинга моей почтовой программы smtp? Наконец, я знаю, что мне нужно запустить:

update-rc.d my_script.sh defaults

но я также был смущен тем, правильно ли я это сделал (это просто имя файла, который туда идет, или файл плюс расширение)?

Ответ №1:

Скрипт, который вы оставляете в папке init.d, не должен иметь никакого расширения и должен иметь функции для запуска, остановки и получения статуса службы (вашего приложения).

Я оставлю ссылку с примером, а также с некоторой основой для создания сценария службы Linux.

Я бы предложил перезагрузить демон с systemctl daemon-reload помощью, чтобы обновить служебные файлы Linux после добавления нового.