[Catalyst] upstart script for Starman-based app?
orasnita at gmail.com
Fri May 4 07:38:40 GMT 2012
From: "Dave Rolsky" <autarch at urth.org>
Subject: Re: [Catalyst] upstart script for Starman-based app?
> On Thu, 3 May 2012, Octavian Rasnita wrote:
>> Does anyone have an upstart script that can be used for automaticly starting a Cat app using Starman?
>> I use Perlbrew and local::lib and I start the app in my own account and not as root and I don't know how to make upstart start the app under my account.
>> Maybe it will be helpful to see an upstart script that works, and try to adapt it.
> Here's an upstart script I use for vegguide.org. Note that I have root
> access to my server, so you'll need to adjust a bit.
> description "VegGuide starman server"
> start on (local-filesystems and net-device-up IFACE!=lo)
> stop on runlevel 
> limit as 524288000 524288000
> pre-start script
> mkdir -p /var/run/vegguide
> chown www-data:www-data /var/run/vegguide
> mkdir -p /var/log/vegguide
> chown www-data:www-data /var/log/vegguide
> end script
> exec /opt/perl5.14.2-no-threads/bin/starman --listen 127.0.0.1:8088 --workers 12 --preload-app --user www-data --group www-data /opt/perl5.14.2-no-threads/bin/vegguide.psgi 2>> /var/log/vegguide/error.log
> This code base is in a git repo at git://git.urth.org/VegGuide.git
> I also have a log monitor script which was watches this error log and
> emails me when there are errors. I start that via upstart too, and it's
> dependent on this job.
Thank you for your script. Finally I've made it to work, although there still is one thing I don't understand...
Here is my version (the paths are just for testing):
description "Startup script for the web site"
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel 
exec /home/teddy/perl5/lib1/bin/starman --listen :5000 --workers 5 --max-requests 1000 --preload-app --pid /srv/log/site.pid --access-log /srv/log/access.log --error-log /srv/log/error.log --user teddy --group teddy --daemonize /srv/BRK/brk.psgi
I've also tried to exec a bash script that contains the same command above (without "exec") using:
But I don't know why it doesn't start the app this way.
If I exec the full command in the upstart script it works fine though.
I've seen that the app starts fine if I don't use the expect stanza, but in that case I can't close it using the stop command.
But I can start and stop it fine if I use either "expect fork" or "expect daemon".
More information about the Catalyst