Я хотел протестировать сервер узла в среде общего хостинга.
Я использую сеанс терминала ssh для тестирования.
Сервер работает нормально, но выйти из терминальной сессии, не остановив сервер, конечно же, нельзя.
Используя pm2 (пакет npm), я могу поддерживать работу сервера, но при выходе из сеанса терминала задание pm2 также завершается, что останавливает сервер. Интересно, почему так.
Попытался использовать crontab для запуска сценария оболочки, который, в свою очередь, запускает pm2, который, в свою очередь, запускает сервер узла. Вкладка cron запускается каждую минуту, но сервер узла никогда не запускается.
Сценарий sh работает просто отлично, pm2 работает нормально, и сервер node работает нормально. Что не работает: сохранение работы сервера узла после выхода из сеанса терминала.
Вот сценарий оболочки, который запускает pm2 для запуска сервера узла...
ps cax | grep node > /dev/null
if [ $? -eq 0 ]; then
echo "Process running."
else
echo "Process not running."
PATH=$PATH:/usr/local/bin
pm2 start '/path/to/NodeServer.js' --restart-delay=100
fi
pm2 startup
? pm2 пытается обнаружить вашу систему инициализации и рассказать вам, как настроить ее для запуска при загрузке. Затем просто выполнитеpm2 start ...
, а затемpm save
. Документы: pm2.keymetrics.io/docs/usage/startup - person rudolfbyker   schedule 20.08.2020pm2 start
требуется root-доступ к серверу, которого вы не получаете с виртуальным хостингом. На самом деле, хотя pm2 и был установлен, похоже, что он больше не работает, как и npm. Я предполагаю, что хостинг-провайдер — вечно продаваемый VPS-сервис — удалил его, поэтому я не знаю, что какой-либо узел — на этом общем хостинге с этим конкретным провайдером — будет работать. - person WhatsYourFunction   schedule 23.08.2020pm2 startup
требуется root-доступ, но вы можете компенсировать это с помощью cron или сценария запуска, специфичного для поставщика, если у вашего провайдера есть такая вещь. Я использую npm-g_nosudo для установки глобальных пакетов npm в очень ограниченной среде джейлкита на моего общего хостинга и периодически проверять, чтоpm2
все еще работает, используя скрипт cron, определенный через веб-интерфейс моего провайдера (ISPConfig). - person rudolfbyker   schedule 25.08.2020