简体   繁体   中英

Nodejs/Strongloop: working upstart config example

After update strongloop to v2.10 slc stops writing logs. Also I couldn't make the app to start in production mode.

/etc/init/app.conf

#!upstart
description "StrongLoop app"

start on startup
stop on shutdown

env NODE_ENV=production

script
        exec slc run /home/ubuntu/app/ \
                -l /home/ubuntu/app/app.log \
                -p /var/run/app.pid
end script

Can anybody check my upstart config or provide another working copy?

Are you were writing the pid to a file so that you can use it to send SIGUSR2 to the process to trigger log re-opening from logrotate?

Assuming you are using Upstart 1.4+ (Ubuntu 12.04 or newer), then you would be better off letting slc run log to its stdout and let Upstart take care of writing it to a file so that log rotation is done for you:

#!upstart
description "StrongLoop app"

start on startup
stop on shutdown

# assuming this is /etc/init/app.conf,
# stdout+stderr logged to: /var/log/upstart/app.log
console log

env NODE_ENV=production

exec /usr/local/bin/slc run --cluster=CPUs /home/ubuntu/app

The log rotation for "free" is nice, but the biggest benefit to this approach is Upstart can log errors that slc run reports even if they are a crash while trying to set up its internal logging, which makes debugging a lot easier.

Aside from what it means to your actual application, the only effect NODE_ENV has on slc run is to set the default number of cluster workers to the number of detected CPU cores, which literally translates to --cluster=CPUs .

Another problem I find is the node/npm path prefix not being in the $PATH as used by Upstart, so I normally put the full paths for executables in my Upstart jobs.

Service Installer

You could also try using strong-service-install, which is a module used by slc pm-install to install strong-pm as an OS service :

$ npm install -g strong-service-install
$ sudo sl-svc-install --name app --user ubuntu --cwd /home/ubuntu/app -- slc run --cluster=CPUs .

Note the spaces around the -- before slc run

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM