为什么node.js进程在ssh会话之后终止?
我正在远程机器(Ubuntu 14.04)上部署node.js程序,该程序在ssh会话后终止,即使我将其部署为后台进程为什么node.js进程在ssh会话之后终止?,node.js,ssh,Node.js,Ssh,我正在远程机器(Ubuntu 14.04)上部署node.js程序,该程序在ssh会话后终止,即使我将其部署为后台进程 node app.js & 我知道永远使用可以解决这个问题,我已经尝试过了,而且非常有效。已经有一个线程描述了它的好解决方案,还有许多其他线程都描述了它的好工具和解决方案 但是,我想理解为什么node.js进程在 第一名,即使它作为后台进程运行 因为您是通过SSH连接的,所以所有进程都属于该会话 除非由命令指定,如 诺胡普 或者不挂断—简而言之,通过SSH属于您的会话
node app.js &
我知道永远使用
可以解决这个问题,我已经尝试过了,而且非常有效。已经有一个线程描述了它的好解决方案,还有许多其他线程都描述了它的好工具和解决方案
但是,我想理解为什么node.js进程在
第一名,即使它作为后台进程运行
因为您是通过SSH连接的,所以所有进程都属于该会话 除非由命令指定,如 诺胡普 或者不挂断—简而言之,通过SSH属于您的会话的所有进程都将随会话一起消亡
这就像用户打开chrome登录然后注销一样。一旦所有者注销,chrome线程将被释放 也就是说,SSH协议通过设计将进程绑定到SSH会话,并且在会话终止时,所有进程都将被终止?正确,所有与会话相关的所有权都将被终止,除非在其他方面进行了指定,如回答上的注释以及“nohup”有何帮助,它是否向操作系统发送特殊信号,使其远离绑定会话?嗯,
nohup
不会发送特殊信号。它会忽略会话结束后系统抛出的“挂断”信号。建议阅读:太好了,这个维基百科链接非常有用