退出SSH后如何维护命令?

时间:2018-07-18 09:26:28

标签: node.js angular ssh cpanel putty

我正在使用PuTTy在共享主机(cPanel)上运行node.js服务器。我的问题是,即使我完全关闭PuTTy,是否也可以保留命令?我的问题是,例如当我键入“ nohup node server.js&”并且我的服务器成功运行时,当我关闭PuTTy时,我的节点服务器又关闭了。如果有一种方法可以使我的节点服务器即使完全退出PuTTy甚至关闭我的计算机后也能连续运行,我会很喜欢。

我尝试了以下操作:
-nohup(如上所述),但是在我关闭PuTTy后不能保持连接。
-forever.js,但仍然与nohup相同。

感谢我能获得的所有帮助。

编辑:为了澄清,我的问题不是我希望该过程在后台运行。我的问题是即使关闭计算机也可以运行该过程。似乎很奇怪,即使我正在使用主机,也必须保持PC开机才能继续服务器进程。

4 个答案:

答案 0 :(得分:0)

有多种方法可以使命令在后台运行,即使您关闭腻子终端也是如此。

  • 一个很简单的方法是,将“&”放在命令末尾,如下所示:

    node server.js&

  • 第二种方法是使用pm2。这是运行NodeJS服务器的非常有效的方法。它不仅在关闭终端后保持会话状态,而且还可以在操作系统重新启动时自动重新启动服务器,而无需用户干预来运行命令。

    您可以通过以下命令安装pm2

    npm install pm2 -g

    然后以

    启动节点服务器

    pm2启动server.js

如果适合您,请进行更新。

答案 1 :(得分:0)

如果screen在服务器上可用,则可以使用。

答案 2 :(得分:0)

如果需要运行在关闭终端后不会终止的进程,可能正在寻找nohupdisown

$ nohup your command &
$ exit

或使用disown

$ your command &
$ disown
$ exit

如果您有多个命令:

$ sleep 3600 &
$ sleep 86400 &

通过键入作业,会出现类似以下内容:

[1]  - running    sleep 3600
[2]  + running    sleep 86400

要放弃,我们只说工作2:

$ disown %2

如果您的进程已经在运行,则可以暂停它ctrl+z,将出现类似以下内容:

$ sleep 3600
^Z
zsh: suspended  sleep 3600

然后输入bg使其进入背景:

$ bg
[1]  + continued  sleep 3600

之后,您可以退出并退出:

$ disown
$ exit

答案 3 :(得分:0)

发现问题出在cPanel,因为它不支持node.js。我搬到DigitalOcean,在那儿工作异常出色。