【问题标题】:How to start a process that won't end when my ssh session ends?如何启动一个在我的 ssh 会话结束时不会结束的进程?
【发布时间】:2010-11-01 17:39:20
【问题描述】:

不知何故,这不是通过谷歌搜索产生的。

我正在 node.js 中编写服务器脚本。我通过使用节点程序执行其脚本来启动服务器:

节点 myserver.js

但服务器是否正常运行取决于我的 ssh 会话。我怎样才能使这个(和所有这样的过程)持久化?初始化.d?

【问题讨论】:

标签: linux process node.js


【解决方案1】:

使用nohup 命令:

来自http://en.wikipedia.org/wiki/Nohup

nohup 是一个忽略 HUP(挂起)信号的 POSIX 命令,使命令在发出命令的用户注销后继续运行。 HUP(挂断)信号按照惯例是终端根据注销进程发出警告的方式。

试试这个:

nohup node myserver.js &

【讨论】:

【解决方案2】:

你试过GNU screen吗?使用它,当您结束 ssh 会话时,进程可以继续运行。 nohup 是一个标准的 *nix 命令,它允许你做同样的事情,尽管方式更有限。

【讨论】:

    【解决方案3】:

    使用屏幕。从终端键入屏幕,然后启动您的进程。如果您断开连接,您可以重新连接到 ssh 会话,方法是输入“screen -ls”(查看活动屏幕)和“screen -r”重新连接。

    【讨论】:

      【解决方案4】:

      程序需要在守护模式下运行。 Here's a good post for doing this in Ubuntu.

      【讨论】:

        【解决方案5】:

        nohup 可以很好地运行该作业。如果作业已经在运行,您可以尝试 disown -h (至少在 bash 中)

        【讨论】:

          猜你喜欢
          • 2011-01-12
          • 1970-01-01
          • 1970-01-01
          • 2015-02-04
          • 1970-01-01
          • 1970-01-01
          • 2020-11-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多