Hi! No, I hadn't - never stumbled across it as I'm running redhat. Looks good but very extensive. If you know what I'm doing wrong, can you point it out? >From that cookbook I tried to do it like said on the Changing User section, but the start-stop-daemon seems to be missing from redhat - I got error saying that it's not found. So I'm stuck with the su solution, but it just isn't working. So, this (what I have below) doesn't work:
exec su --session-command="/usr/local/bin/node /home/nodeuser/dev/NodeApp/NodeApp-4.js" >> /var/log/NodeApp.log 2>&1 nodeuser & And I cannot figure out why. It starts the node app, but the pid gets screwed up. I tried to change it to following form from the cookbook: exec su -c "/usr/local/bin/node /home/nodeuser/dev/NodeApp/NodeApp-4.js >> /hugo/nodeuser/dev/NodeApp/NodeApp.log 2>&1" nodeuser But that doesn't even start. So, I'm kind of stuck. I would really appreciate if you could point out my error. Thanks. On Mon, Mar 19, 2012 at 2:32 PM, Diogo Resende <[email protected]>wrote: > Have you read this? > > http://upstart.ubuntu.com/cookbook/ > > It's very good.. > > -- > Diogo Resende > > > On Monday, March 19, 2012 at 12:26 , HG wrote: > > > Hi! > > > > Can you tell me what I'm doing wrong. I'm trying to deploy to Redhat 6.1 > using upstart. If I do it as root, it works, but I cannot get it done as a > user. It always tries to start multiple instances of the node process when > I run this /etc/init/NodeApp.conf script: > > > > #!upstart > > description "node.js HTTP-server" > > author "me" > > > > # One example said that it's safer to start after mounts > > #start on startup > > start on started mountall > > stop on shutdown > > > > # respawn > > respawn > > # If the process is respawed more than 3 times within an interval of 10 > seconds the process will be stopped and not restarted > > respawn limit 3 10 > > > > script > > export NODE_ENV="production" > > > > # Somebody wrote: Not sure why $HOME is needed, but we found that it is: > > export HOME="/home/nodeuser/" > > > > echo $$ > /var/run/NodeApp.pid > > # sudo doesn't work on redhat > > # exec sudo -u nodeuser /usr/local/bin/node > /home/nodeuser/dev/NodeApp-4.js >> /var/log/NodeApp.log 2>&1 > > exec su --session-command="/usr/local/bin/node > /home/nodeuser/dev/NodeApp/NodeApp-4.js" >> /var/log/NodeApp.log 2>&1 > nodeuser & > > > > ### Why does this run spawnlimit+1 times at the startup ?!? > > > > # root works: > > #echo $$ > /var/run/NodeApp.pid > > #export HOME="/root" > > #exec /usr/local/bin/node /home/nodeuser/dev/NodeApp/NodeApp-4.js >> > /var/log/NodeApp.log 2>&1 > > end script > > > > pre-start script > > # Date format same as (new Date()).toISOString() for consistency > > echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> > /var/log/NodeApp.log > > end script > > > > pre-stop script > > rm /var/run/NodeApp.pid > > echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> > /var/log/NodeApp.log > > end script > > > > > > The problem is that when I issue: sudo start NodeApp this starts the > process 4 times (spawnlimit+1). First one of those, will get the http port > and the rest will fail as the port is already taken. And as the result of > that, the NodeApp,pid file has the las PID which failed and the first one > that is running is not recorded. If I run this as root (commented out), > this works as expected. What am I doing wrong? > > > > -- > > HG. > > > > -- > > Job Board: http://jobs.nodejs.org/ > > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > > You received this message because you are subscribed to the Google > > Groups "nodejs" group. > > To post to this group, send email to [email protected] (mailto: > [email protected]) > > To unsubscribe from this group, send email to > > [email protected] (mailto: > [email protected]) > > For more options, visit this group at > > http://groups.google.com/group/nodejs?hl=en?hl=en > > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > -- HG. -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
