退出SSH后如何维护命令?

How to maintain command after exiting SSH?

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

我试过以下方法:
- nohup(如上所示),但是在我关闭 PuTTy 后它不会保持连接。
- forever.js 然而仍然是与 nohup 相同的问题。

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

编辑: 澄清一下,我的问题不是我希望进程在后台 运行。我的问题是是否可以 运行 即使在我的计算机关闭时也可以执行该过程。看起来很奇怪,我必须让我的电脑保持开机状态才能让服务器进程继续,即使我正在使用主机。

有多种方法可以让 运行ning 命令在后台运行,即使您关闭了 putty 终端。

  • 很简单,在命令末尾加上“&”,如下所示

    节点server.js &

  • 第二种方法是使用pm2。这是 运行 NodeJS 服务器的非常有效的方法。它不仅在关闭终端后保持会话,而且如果您的操作系统重新启动,它会自动再次启动服务器,无需用户与 运行 命令交互。

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

    npm 安装 pm2 -g

    然后以

    启动节点服务器

    pm2 开始server.js

如果这对您有用,请更新。

如果服务器上可用,您可以使用 screen

可能您正在寻找 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

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

$ sleep 3600
^Z
zsh: suspended  sleep 3600

然后输入 bg 将其置于后台:

$ bg
[1]  + continued  sleep 3600

之后你可以否认并退出:

$ disown
$ exit

发现问题出在 cPanel 上,因为它不支持 node.js。我搬到了 DigitalOcean,它在那里工作得非常好。