【发布时间】:2010-11-01 17:39:20
【问题描述】:
不知何故,这不是通过谷歌搜索产生的。
我正在 node.js 中编写服务器脚本。我通过使用节点程序执行其脚本来启动服务器:
节点 myserver.js
但服务器是否正常运行取决于我的 ssh 会话。我怎样才能使这个(和所有这样的过程)持久化?初始化.d?
【问题讨论】:
-
我认为这更属于系统管理的范围,更适合服务器故障。
不知何故,这不是通过谷歌搜索产生的。
我正在 node.js 中编写服务器脚本。我通过使用节点程序执行其脚本来启动服务器:
节点 myserver.js
但服务器是否正常运行取决于我的 ssh 会话。我怎样才能使这个(和所有这样的过程)持久化?初始化.d?
【问题讨论】:
使用nohup 命令:
来自http://en.wikipedia.org/wiki/Nohup
nohup 是一个忽略 HUP(挂起)信号的 POSIX 命令,使命令在发出命令的用户注销后继续运行。 HUP(挂断)信号按照惯例是终端根据注销进程发出警告的方式。
试试这个:
nohup node myserver.js &
【讨论】:
你试过GNU screen吗?使用它,当您结束 ssh 会话时,进程可以继续运行。 nohup 是一个标准的 *nix 命令,它允许你做同样的事情,尽管方式更有限。
【讨论】:
使用屏幕。从终端键入屏幕,然后启动您的进程。如果您断开连接,您可以重新连接到 ssh 会话,方法是输入“screen -ls”(查看活动屏幕)和“screen -r”重新连接。
【讨论】:
程序需要在守护模式下运行。 Here's a good post for doing this in Ubuntu.
【讨论】:
nohup 可以很好地运行该作业。如果作业已经在运行,您可以尝试 disown -h (至少在 bash 中)
【讨论】: