如何在后台运行 NodeJS 应用程序而不在您注销时结束?

qod*_*nja 3 ubuntu service node.js

我试图让我的 ubuntu 服务器上的应用程序保持运行,以便 Google 有时间 ping 它,但是当我注销时,该应用程序一直关闭。

我启动 Nodejs 应用程序supervisor以监视更改(通过 shell 脚本)

我找到了类似 的命令nohup,但在运行后台服务时我真的一无所知,除了键入简单的命令,例如service httpd start在 CentOS 上似乎对 Apache 工作得很好的命令!

我是否需要创建另一个用户来运行服务?我有一个带有 Ubuntu 10.04 的 Linode 实例

运行文件

cd myapp/src/main/node
supervisor -w "myapp/src/main/node,myapp2/src/main/node,./" run-apps.js
Run Code Online (Sandbox Code Playgroud)

Kyl*_*yle 5

它退出的原因是当您注销并终止父 shell 时,脚本会收到 HUP 信号并失去写入 STDOUT 和 STDERR 的能力。

您有 4 个选项,(按照“正确性”和“清洁度”的顺序):

  1. 修改它,使其忽略 HUP 信号并干净地记录到文件中。
  2. screen会话中运行脚本
  3. 运行脚本使用 nohup
  4. 创建一个相当复杂的 bash 脚本来启动脚本,然后disown关闭相关的 STDOUT 和 STDERR 通道。


qua*_*nta 5

尝试这个:

nohup supervisor -w "myapp/src/main/node,myapp2/src/main/node,./" run-apps.js &
Run Code Online (Sandbox Code Playgroud)

其他一些方法: