启动 – 停止守护进程不按预期工作

我无法弄清楚为什么start-stop-daemon没有运行下面的脚本。 我究竟做错了什么? 启动 – 停止 – 守护进程报告它会在使用–test标志时启动节点,但是当我实际运行进程没有启动时。

root@server:~# cat /var/www/a/app.js var http = require("http") var fs = require("fs") fs.writeFileSync("app.pid", process.pid) http.createServer(function(req, res) { res.writeHead(200, {"Content-Type": "text/plain"}) res.end("Test") }).listen(3000) console.log("App A is running, PID", process.pid) root@server:~# node /var/www/a/app.js App A is running, PID 18517 ^Z [1]+ Stopped node /var/www/a/app.js root@server:~# pidof node 18517 root@server:~# kill -9 `pidof node` root@server:~# fg -su: fg: job has terminated [1]+ Killed node /var/www/a/app.js root@server:~# rm /var/www/a/app.pid root@server:~# start-stop-daemon --start --pidfile /var/www/a/app.pid --chdir /var/www/a --chuid www-data:www-data --background --exec /opt/iojs/bin/node app.js --test Would start /opt/iojs/bin/node app.js (as user www-data[33], and group www-data[33]). root@server:~# start-stop-daemon --start --pidfile /var/www/a/app.pid --chdir /var/www/a --chuid www-data:www-data --background --exec /opt/iojs/bin/node app.js root@server:~# pidof node root@server:~# start-stop-daemon --start --pidfile /var/www/a/app.pid --chdir /var/www/a --chuid www-data:www-data --background --exec app.js --test Would start app.js (as user www-data[33], and group www-data[33]). 

start-stop-daemon start命令使用--exec来确定要执行的二进制文件(在/opt/iojs/bin/node )。 为了说明这个命令的参数应该加上-- (在你的情况下是àpp.js

所以你应该这样称呼它:

start-stop-daemon --start --pidfile /var/www/a/app.pid --chdir /var/www/a --chuid www-data:www-data --background --exec /opt/iojs/bin/node -- app.js

我希望这会解决你的问题