我正在使用PuTTy在共享主机(cPanel)上运行node.js服务器。我的问题是,即使我完全关闭PuTTy,是否也可以保留命令?我的问题是,例如当我键入“ nohup node server.js&”并且我的服务器成功运行时,当我关闭PuTTy时,我的节点服务器又关闭了。如果有一种方法可以使我的节点服务器即使完全退出PuTTy甚至关闭我的计算机后也能连续运行,我会很喜欢。
我尝试了以下操作:
-nohup(如上所述),但是在我关闭PuTTy后不能保持连接。
-forever.js,但仍然与nohup相同。
感谢我能获得的所有帮助。
编辑:为了澄清,我的问题不是我希望该过程在后台运行。我的问题是即使关闭计算机也可以运行该过程。似乎很奇怪,即使我正在使用主机,也必须保持PC开机才能继续服务器进程。
答案 0 :(得分:0)
有多种方法可以使命令在后台运行,即使您关闭腻子终端也是如此。
一个很简单的方法是,将“&”放在命令末尾,如下所示:
node server.js&
第二种方法是使用pm2。这是运行NodeJS服务器的非常有效的方法。它不仅在关闭终端后保持会话状态,而且还可以在操作系统重新启动时自动重新启动服务器,而无需用户干预来运行命令。
您可以通过以下命令安装pm2
npm install pm2 -g
然后以
启动节点服务器pm2启动server.js
如果适合您,请进行更新。
答案 1 :(得分:0)
如果screen在服务器上可用,则可以使用。
答案 2 :(得分:0)
如果需要运行在关闭终端后不会终止的进程,可能正在寻找nohup
或disown
:
$ 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,在那儿工作异常出色。