如何以后台运行进程并永不死亡?

我通过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是条目列表。

    链接地址: http://www.djcxy.com/p/90027.html

    上一篇: How to run process as background and never die?

    下一篇: Success with start