我通过 Putty SSH 连接到 Linux 服务器,尝试以后台进程运行:
$ node server.js &
然而,2.5小时后终端变得不活跃,进程就会死亡。有没有办法让进程保持运行状态,即使终端断开连接?
编辑1
实际上,我尝试过nohup
,但是一旦我关闭Putty SSH终端或拔掉网络,服务器进程就立即停止了。
我需要在Putty中做些什么吗?
编辑2(2012年2月)
有一个node.js
模块,叫做forever。它可以将node.js服务器作为守护进程运行。
我通过 Putty SSH 连接到 Linux 服务器,尝试以后台进程运行:
$ node server.js &
然而,2.5小时后终端变得不活跃,进程就会死亡。有没有办法让进程保持运行状态,即使终端断开连接?
编辑1
实际上,我尝试过nohup
,但是一旦我关闭Putty SSH终端或拔掉网络,服务器进程就立即停止了。
我需要在Putty中做些什么吗?
编辑2(2012年2月)
有一个node.js
模块,叫做forever。它可以将node.js服务器作为守护进程运行。
要在debian上使用sysv init将命令作为系统服务运行:
复制骨架脚本并根据您的需求进行调整,可能您只需要设置一些变量。如果某些内容不符合您的需求,则您的脚本将从/lib/init/init-d-script
继承良好的默认值,如果出现问题,则可以在源代码/lib/init/init-d-script
中查看详细信息。强制变量是DAEMON
和NAME
。脚本将使用start-stop-daemon
运行您的命令,在START_ARGS
中,您可以定义start-stop-daemon
的其他参数以使用。
cp /etc/init.d/skeleton /etc/init.d/myservice
chmod +x /etc/init.d/myservice
nano /etc/init.d/myservice
/etc/init.d/myservice start
/etc/init.d/myservice stop
...
DESC="mediawiki articles converter"
DAEMON='/home/mss/pp/bin/nslave'
DAEMON_ARGS='--cachedir /home/mss/cache/'
NAME='nslave'
PIDFILE='/var/run/nslave.pid'
START_ARGS='--background --make-pidfile --remove-pidfile --chuid mss --chdir /home/mss/pp/bin'
export PATH="/home/mss/pp/bin:$PATH"
do_stop_cmd() {
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
$STOP_ARGS \
${PIDFILE:+--pidfile ${PIDFILE}} --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
rm -f $PIDFILE
return $RETVAL
}
do_stop_cmd
,因为Python替代了可执行文件,导致服务无法正常停止。尝试这个简单的解决方案
cmd & exit