Контекст: бывает что нужно захостить маленькое вебное приложение. Я не готов платить облачным провайдерам, поэтому использую одну линуксовую виртуалку для десятка разных приложений. Некоторые приложения обернуты в докер, и с ними нет проблем при перезагрузке. А некоторые запускаются скриптом или командой типа npm run prod
. Такие не стартуют автоматом при перезагрузке системы. Можно для них теоретически настроить pm2
, но это лишняя большая морока. А некоторые приложения вообще на java, и nodejs решения типа pm2
несовместимы.
В интернетах рекомендуют разные решения через init.d и другие системы. Недавно наткнулся на рекомендацию настроить автостарт через крон. Крон есть почти везде, он простой как 2 пальца, да и скрипт старта приложения все равно нужно писать. Получается красивое минималистичное работающее решение.
Решение: cron
Редактируй крон файл
crontab -e
Добавляй свой старт скрипт с @reboot
. (ниже напишу как создать такой скрипт если еще не знаешь)
@reboot /srv/web/podgorniy.net/start
Скрипт создается примерно так:
Создай файл
touch start
Сделай файл executable (разреши запускать его содрежимое как скрипт)
sudo chmod +x start
И установи содержимое start
так чтобы оно стартовало твою программу:
#! /bin/sh
npm run prod
или
#! /bin/sh
java -jar ....