Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js supervisord如何成功重新启动npm start命令?_Node.js_Supervisord - Fatal编程技术网

Node.js supervisord如何成功重新启动npm start命令?

Node.js supervisord如何成功重新启动npm start命令?,node.js,supervisord,Node.js,Supervisord,我已经通过supervisord启动了“节点启动” 我的问题是 在supervisord停止/重新启动将导致node app.js进程保持不被终止 在这种情况下,supervisord如何成功重新启动npm start命令 supervisord.conf [supervisord] nodaemon=true [program:node] command=npm start directory=/xx stdout_logfile=/dev/stdout stdout_logfile_ma

我已经通过supervisord启动了“节点启动”

我的问题是 在supervisord停止/重新启动将导致node app.js进程保持不被终止

在这种情况下,supervisord如何成功重新启动npm start命令

supervisord.conf

[supervisord]
nodaemon=true

[program:node]
command=npm start 
directory=/xx
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
user=root
autostart=true
autorestart=true
redirect_stderr=true
exitcodes=1
package.json

{
  "name": "xx",
  "version": "1.0.0",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "xxx
  },
  "devDependencies": {
    "nodemon": "^1.11.0"
  },
  "description": ""
}

这对我很有用:在Supervisor配置文件中将
npm start
更改为
node app.js

为什么? 我注意到使用
npm start
启动两个过程:

$ ps aux | grep node
ubuntu   19363  0.0  0.0   4508   708 ?        S    17:43   0:00 sh -c node index.js
ubuntu   19364  1.3  5.2 1041288 52996 ?       Sl   17:43   0:00 node index.js
在Supervisor中停止它只会停止父进程:

$ sudo supervisorctl stop all
my_worker: stopped
$ ps aux | grep node
ubuntu   19364  0.3  5.2 1041288 52996 ?       Sl   17:43   0:00 node index.js
因此,将
node index.js
直接放在supervisor配置中解决了我的问题