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]
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

Reply via email to