我通过腻子SSH连接到linux服务器。 我试图将其作为这样的后台进程运行:
$ node server.js &
但是,在2.5小时后,终端变为非活动状态,该过程终止。 无论如何,即使在终端断开连接的情况下,我仍然可以保持该过程正常进行吗?
编辑1
实际上,我尝试了nohup
,但是一旦我关闭Putty SSH终端或拔出Internet插头,服务器进程就会立即停止。
在腻子里我有什么需要做的吗?
编辑2(2012年2月)
永远有一个node.js
模块。 它将作为守护程序服务运行node.js服务器。
#1楼
nohup node server.js > /dev/null 2>&1 &
-
nohup
意思是: 即使终止了笔势也不要终止此过程。 -
> /dev/null
表示: stdout转到/ dev / null(这是一个不记录任何输出的虚拟设备)。 -
2>&1
表示: stderr也转到stdout(已经重定向到/dev/null
)。 您可以将&1替换为文件路径以保留错误日志,例如:2>/tmp/myLog
-
&
表示最后: 将此命令作为后台任务运行。
#2楼
另一个解决方案取消了工作
$ nohup node server.js &
[1] 1711
$ disown -h %1
#3楼
您确实应该尝试使用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是条目列表。
#4楼
根据@Yoichi的回答,我的shell rc文件中具有此功能:
nohup-template () {
[[ "$1" = "" ]] && echo "Example usage:\nnohup-template urxvtd" && return 0
nohup "$1" > /dev/null 2>&1 &
}
您可以通过以下方式使用它:
nohup-template "command you would execute here"
#5楼
$ disown node server.js &
它将从活动任务列表中删除命令,并将命令发送到后台
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3160345