如何以后台运行进程并永不死亡?
我通过putty SSH连接到linux服务器。 我试图将其作为后台进程运行,如下所示:
$ node server.js &
但是,在2.5小时后,终端变为无效并且处理过程中断。 无论如何,即使终端断开连接,我仍然可以保持流程畅通无阻。
编辑1
实际上,我尝试了nohup
,但只要关闭Putty SSH终端或拔掉互联网,服务器进程就会立即停止。
Putty有什么我必须做的吗?
编辑2(2012年2月)
有一个node.js
模块,永远。 它将运行node.js服务器作为后台服务。
简单的解决方案 (如果您不想回到过程中,只想让它继续运行):
nohup node server.js &
强大的解决方案 (如果它是交互式的,您可以重新连接到流程):
screen
然后,您可以按Ctrl + a + d进行分离,然后通过运行screen -r
还要考虑更新的屏幕替代方案,即tmux。
nohup node server.js > /dev/null 2>&1 &
nohup
意思是:即使stty被切断,也不要终止这个过程。 > /dev/null
表示:标准输出转到/ dev / null(这是一个不记录任何输出的虚拟设备)。 2>&1
意味着:stderr也会转到stdout(已经被重定向到/dev/null
)。 您可以用文件路径替换&1以保留错误日志,例如: 2>/tmp/myLog
&
最后意味着:运行这个命令作为后台任务。 你真的应该尝试使用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,然后按d。 完成。 你的会议继续在后台进行。
您可以按screen -ls
列出所有会话,并通过screen -r 20673.pts-0.srv
命令连接到某些screen -r 20673.pts-0.srv
,其中0673.pts-0.srv是条目列表。
上一篇: How to run process as background and never die?
下一篇: Success with start