[Catalyst] Running Catalyst apps with start_server

Octavian Rasnita orasnita at gmail.com
Sat Jan 21 22:16:03 GMT 2012


Hi,

Is Server-Starter a good way for starting a Catalyst app?

I am asking this because I don't have success with using start_server with the --daemonize option.
I use Perl 5.14.2 under Ubuntu 11.

Here is the command I used:

start_server \
--port :5000 \
-- starman \
--workers 15 \
--max-requests 1000 \
--pid /srv/log/site.pid \
--access-log /srv/log/access.log \
--error-log /srv/log/error.log \
--daemonize \
/srv/BRK/brk.psgi

The command is not executed in the background, but it keeps printing the following errors:

new worker 7423 seems to have failed to start, exit status:256
starting new worker 9044
Pid_file already exists for running process (27684)... aborting
new worker 9044 seems to have failed to start, exit status:256
starting new worker 10428
Pid_file already exists for running process (27684)... aborting
new worker 10428 seems to have failed to start, exit status:256 
....

So I need to break it. After breaking it, I can see that there are still some starman processes running, and their number seems to decrease, then increase again and so on, but the Starman web server doesn't answer to requests:

teddy    12843  0.0  0.0      0     0 pts/2    Z+   23:05   0:00 [starman] <defunct>
teddy    14076  0.0  0.1   9820  5096 ?        R    23:05   0:00 starman master --workers 15 --max-requests 1000 --pid /srv/log/site.pid --access-log /srv/log/access.log --error-log /srv/log/error.log --daemonize
teddy    14080  0.0  0.0      0     0 ?        R    23:05   0:00 [starman master ]
teddy    14082  0.0  0.0      0     0 ?        Z    23:05   0:00 [starman master ] <defunct>
teddy    14083  0.0  0.1   9820  5020 ?        R    23:05   0:00 starman master --workers 15 --max-requests 1000 --pid /srv/log/site.pid --acce
ss-log /srv/log/access.log --error-log /srv/log/error.log --daemonize
...


On the other hand, if I use the same command, but without the --daemonize option, start_server seems to work fine and the web server can be also accessed with no problems. It prints:

start_server (pid:17145) starting now...
starting new worker 17146 

But of course, it doesn't go in the background...
I can put it to run in the background if I add a " &" after the command line start_server ... and I've seen that if I do that it works and I can also add or remove workers with kill -TTIN|TTOU, but... is it a good way? Or it is better recommended to run starman directly?


Octavian




More information about the Catalyst mailing list