自动重启Node.Js应用程序

时间:2014-12-01 13:34:57

标签: linux node.js cron

我的Node.Js应用程序有时会出现故障(我正在努力解决问题)但同时我有一个脚本(默认来自WebFaction托管),如果它是#39,它应该重启我的应用程序;没有跑。

然而,它根本不起作用(我改为502页,当我手动停止应用程序时也会显示)。我的意思是应用程序可以通过脚本启动,但是当应用程序崩溃时,它不会重新启动它,即使下面的脚本每隔5分钟在cron上运行一次:

*/5 * * * * ~/webapps/infranodus/bin/start

你知道问题是什么以及我如何解决它?

以下是以下脚本:

#!/bin/sh mkdir -p /home/noduslabs/webapps/infranodus/run pid=$(/sbin/pidof /home/noduslabs/webapps/infranodus/bin/node) if echo "$pid" | grep -q " "; then pid="" fi if [ -n "$pid" ]; then user=$(ps -p $pid -o user | tail -n 1) if [ $user = "noduslabs" ]; then exit 0 fi fi nohup /home/noduslabs/webapps/infranodus/bin/node /home/noduslabs/webapps/infra$ /sbin/pidof /home/noduslabs/webapps/infranodus/bin/node > /home/noduslabs/webap$

PS另一件事是当应用程序崩溃时,我必须通过ssh登录我的主机,用node app启动应用程序然后退出它,然后才开始真正起作用。所以看起来剧本实际上并没有发现脚本失效的原因,这就是为什么它可能不起作用......

1 个答案:

答案 0 :(得分:9)

只需使用forever

即可
[sudo] npm install -g forever

然后,永远启动你的应用程序:

forever start app.js

您的脚本将在崩溃/退出时重新启动,您可以永久使用多个node.js应用程序。

要手动停止/重启您的应用程序,您可以使用:

forever restart [id]
forever stop [id]

此外,永远将您的应用程序的日志存储在〜/ .forever中。您可以使用以下方法轻松读取应用程序的日志:

forever logs # list all logs
forever logs [id] # Tails the logs of id

forever at npm