如何启动一个在我的ssh会话结束时不会结束的进程?

时间:2010-11-01 17:39:20

标签: linux process node.js

谷歌搜索不会产生这种效果。

我在node.js中编写服务器脚本。我通过使用节点程序执行其脚本来启动服务器:

节点myserver.js

但服务器熬夜取决于我的ssh会话。我怎样才能使这个(以及所有这些过程)持久化?的init.d?

5 个答案:

答案 0 :(得分:11)

使用nohup命令:

来自http://en.wikipedia.org/wiki/Nohup

  

nohup是一个POSIX命令,用于忽略HUP(挂断)信号,使命令在发出命令的用户注销后继续运行。按照惯例,HUP(挂断)信号是终端根据注销过程发出警告的方式。

试试这个:

nohup node myserver.js &

答案 1 :(得分:3)

你试过GNU screen吗?使用它,当您结束ssh会话时,进程可以继续运行。 nohup是一个标准的* nix命令,可以让你做同样的事情,虽然方式有限。

答案 2 :(得分:1)

使用屏幕。从终端键入屏幕,然后启动您的过程。如果断开连接,可以重新连接到ssh会话,输入'screen -ls'(查看活动屏幕)和'screen -r'重新连接。

答案 3 :(得分:0)

程序需要以守护程序模式运行。 Here's a good post for doing this in Ubuntu

答案 4 :(得分:0)

nohup很适合经营这项工作。如果作业已在运行,您可以尝试disown -h(至少在bash中)