
我不明白為什麼 start-stop-daemon 沒有運行下面的腳本。我究竟做錯了什麼? 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]).
答案1
start-stop-daemonstart
指令用於--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
我希望這能解決你的問題