background-process - 如何在后台运行进程,永远不会死?

  显示原文与译文双语对照的内容
0 0

我通过 Putty SSH连接到linux服务器。 我试图将它作为后台进程运行,如下所示:


$ node server.js &

但是,在 2.5小时后,终端变为不活动,进程死亡。 是在那了,我可以使该过程保持为活动状态,即使终端断开连接?

谢谢。


帮助,请 !

实际上,我尝试了 nohup,但一旦我关闭 Putty SSH终端或者拔掉我的互联网,服务器进程就会立即停止。

我在 Putty 中需要做什么?


在 2012 feb, update: 有一个 node.js 模块,永远是。 它将nodejs服务器作为守护进程运行。

很好。

时间: 原作者:

0 0

简单解决方案 ( 如果你对返回进程不感兴趣,只希望它继续运行):


nohup node server.js &

强大的解决方案 。( 允许你重新连接到进程,如果它是交互式的):

 
screen

 

还要考虑屏幕的新替代,即 tmux 。

原作者:
0 0

nohup node server.js>/dev/null 2>&1 &

  1. nohup的意思是:即使被切断,也不会终止这个进程。
  2. >/dev/null的意思是:的标准输出到/dev/null ( 它是一个不记录任何输出的虚拟设备) 。
  3. 2>&1的意思是:的stderr也进入了 stdout ( 已经被重定向到 /dev/null ) 。
  4. & 结尾意味着: 作为后台任务运行这里命令。
原作者:
0 0

你真的应该尝试使用 screen 。 这比做 nohup long_running & 要复杂一点,但一旦你不再回来,你就会理解屏幕。

开始你的屏幕会话:

 
user@host:~$ screen

 

运行任何你想要的:


wget http://mirror.yandex.ru/centos/4.6/isos/i386/CentOS-4.6-i386-binDVD.iso

按ctrl+A然后按。 完成。你的会话正在后台进行。

你可以通过 screen -ls 列出所有会话,并通过 screen -r 20673.pts-0.srv 命令附加到某些会话。其中 0673 。pts-0.srv是一个条目列表。

0 0

nohup 将允许程序在终端终止后继续运行。 实际上,我有 nohup 阻止SSH会话正确终止的情况,所以你也应该重定向输入:


$ nohup node server.js </dev/null &

根据 nohup的配置方式,你可能还需要将标准输出和标准错误重定向到文件。

0 0

我的shell rc文件中有这个函数,基于 @Yoichi's 答案:


nohup-template () {
 [["$1" ="" ]] && echo"Example usage:nnohup-template urxvtd" && return 0
 nohup"$1">/dev/null 2>&1 &
}

你可以用此方式使用:


nohup-template"command you would execute here"

原作者:
...