2

I can't figure out why start-stop-daemon is not running the script below. What am I doing wrong? start-stop-daemon reports that it will start node when using the --test flag, but when I actually run the process isn't started.

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
  • Got it working using sudo... sudo -H -u www-data -g www-data bash -c '/opt/iojs/bin/node /var/www/a/app.js &'
    – mhingston
    Mar 3 '15 at 13:15
0

The start-stop-daemon start command uses --exec to determine the binary file to execute (in your case /opt/iojs/bin/node). In order to indicate arguments to this command should be added with -- (in your case àpp.js)

So you should call it like that:

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

I hope this will solve your problem

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.