初学node,遇到这么几个问题:
- 我是用ssh启动:node app,那么当我把ssh窗口关闭node也就停止运行了,我看到论坛里有说·nohup node app &·能启动,可是不知如何停用。
- 当网站已经在服务器端运行,那么这个时候要更新文件,只有重启服务才会生效,这个如何解决?
- 当网站在运行的时候如果出现错误,这个时候网站不就整个都挂了,能否忽略错误?
大神们,求解答~~
7 回复
1、不管什么方式后台启动之后要关闭的话都可以通过kill掉进程来停止。 2、除非更新静态资源文件,否则必须重启。 3、通过下面的进程捕获错误可以避免挂掉进程: pocess.on('uncaughtException’, function (err) { //进程捕获异常 logger.error('Caught exception: ' + err); });
第一个问题是由于logout时会给所有sshd的子进程发送HUP信号,你的方法就是让程序无视HUP信号。
相关的方法还有很多,比如setsid建立新会话,disown使作业忽略HUP信号,最强大的是screen,直接提供模拟器来运行多个伪终端,由于screen是init的进程,HUP信号影响不到。