gpt4 book ai didi

cron - 如何让 Node JS 服务器在共享主机上运行

转载 作者:行者123 更新时间:2023-12-05 06:13:43 25 4
gpt4 key购买 nike

我想在共享托管环境中测试节点服务器。

我正在使用 ssh 终端 session 进行测试。

服务器工作正常,但当然你不能在不停止服务器的情况下离开终端 session 。

使用 pm2(npm 包),我能够让服务器保持运行,但在退出终端 session 时,pm2 作业也会退出,从而停止服务器。很好奇为什么会这样。

尝试使用 crontab 运行一个 shell 脚本,该脚本又运行 pm2,而 pm2 又启动节点服务器。 cron 选项卡每分钟运行一次,但节点服务器从不启动。

sh 脚本工作正常,pm2 工作正常,节点服务器工作正常。什么不起作用:在退出终端 session 后保持节点服务器运行。

这是运行 pm2 来触发节点服务器的 shell 脚本...

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对于 godaddy 共享主机,并使用 Habib 的答案的修改版本 pm2而不是 node , 不要忘记包含到 node 的路径进入PATH变量,因为它是 pm2 所要求的:

PATH=$PATH:/home/user/.nvm/versions/node/v11.15.0/bin
pm2 ps | grep 'my-app'
if [ $? -eq 0 ]; then
echo "Process running."
else
echo "Process not running."
cd /home/user/public_html/app
pm2 start app.js --name my-app
fi

上面的脚本对我有用。仅指定到 pm2 的完整路径没有工作,因为它寻找 node , 这不在 PATH 中在cron环境。

关于cron - 如何让 Node JS 服务器在共享主机上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63185217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com