如何守护进程?

时间:2014-04-25 23:20:31

标签: unix process daemon

在我的托管帐户上,我在Node.js中运行聊天。一切正常,但我的托管超时每12个小时处理一次。显然,当这个过程被移植时,它不会超时,所以我试图用以下方式妖魔化:

  1. 使用Forever.js - 运行forever start chat.js。运行forever list确认它运行并且ps -ef命令显示?在TTY专栏

  2. 尝试nohup node chat.js - 正在运行ps -ef TTY列显示pts/0,PPID为1

  3. 我试图断开stdin,stdout和stderr,并让它忽略挂断信号(SIGHUP),所以nohup ./myscript 0<&- &> my.admin.log.file &没有运气。 ps -ef TTY列为pts/0,PPID不是1

  4. 我再次尝试(nohup ./myscript 0<&- &>my.admin.log.file &)没有运气。 ps -ef TTY列为pts/0,PPID为1

  5. 毕竟这个过程总是在12小时左右结束。

    现在我尝试了(nohup ./myscript 0<&- &>my.admin.log.file &) &并等待,但不要保持希望并需要某人的帮助。

    托管人声称守护程序进程没有超时,但我怎样才能确保我的进程是一个守护进程?注意到我尝试似乎工作,即使我的理解有限ps -ef似乎建议过程被视为去除。

    如果不转向更昂贵的托管计划,我该怎么做才能将流程妖魔化?我可以争辩主持,毕竟这个过程是一个守护进程,他们只是在某处弄错了?

1 个答案:

答案 0 :(得分:0)

Upstart是一种非常简单的守护进程的方法 http://upstart.ubuntu.com/

有一些关于将它与node和monit一起使用的信息,如果它崩溃,它将为你重新启动Node http://howtonode.org/deploying-node-upstart-monit