
wash at paperpile
Jun 12, 2009, 7:22 AM
Post #6 of 8
(716 views)
Permalink
|
|
Re: Killing the standalone perl server programatically
[In reply to]
|
|
> On Fri, Jun 12, 2009 at 6:50 AM, J. Shirley <jshirley[at]gmail.com > <mailto:jshirley[at]gmail.com>> wrote: > ou'll have to grab Catalyst::Engine::HTTP::Prefork out of svn, or > prod andyg enough so he releases (HEY ANDY!) > http://dev.catalystframework.org/repos/Catalyst/trunk/Catalyst-Engine-HTTP-Prefork/ Thank you. I'll have a look at this solution. It is probably a good idea to use Engine::HTTP::Prefork anyway instead of the simple test/development-server. J. Shirley wrote: > On Fri, Jun 12, 2009 at 6:50 AM, J. Shirley <jshirley[at]gmail.com > <mailto:jshirley[at]gmail.com>> wrote: > > On Fri, Jun 12, 2009 at 6:19 AM, Stefan Washietl <wash[at]paperpile.org > <mailto:wash[at]paperpile.org>> wrote: > > I'm developing a desktop application using Catalyst and the > brand new Titanium framework (http://www.appcelerator.com/). > > I need to start/stop the standalone server programatically. > Starting is easy, but stopping the server (and its forks) again > is tricky. I'd like a solution without keeping track of the PID > and explicitely kill it from outside. I want to have something like > > http://localhost:3000/kill > > that calls something in the controller to shut down. The obvious > thing > > exit(0); > > does not work. Any ideas how to do this? > > Stefan > > > I just set this up with a combination of HTTP::Prefork and > FCGI::Engine::Manager. I'm still floundering away a bit at a > refactor of FCGI::Engine::Manager that is semantically more sound, > but it works well enough right now. > > You'll have to grab Catalyst::Engine::HTTP::Prefork out of svn, or > prod andyg enough so he releases (HEY ANDY!) > http://dev.catalystframework.org/repos/Catalyst/trunk/Catalyst-Engine-HTTP-Prefork/ > > > Here's all the yummy bits from my setup: http://gist.github.com/128642 > > You can just run script/myapp_admin.pl start|stop > > One thing, I copied the script/myapp_server.pl over to > script/myapp_prefork.pl and changed the default CATALYST_ENGINE to > HTTP::Prefork. > > This is because I couldn't figure out a clean way to set the ENV in > FCGI::Engine::Manager::Server classes, but it's a temporary hack > until I wrap that up. > > Hope this helps, > > > I forgot to finish this off, you can have the kill action then run the > stop command and then everything is going from the same point. Just > executing a system call to kill it means that the current request should > finish cleanly, along with everything else. > > It may be overkill, but that's how I'd do it (just so any post-shutdown > scripts are always executed, etc) > > -J > > > ------------------------------------------------------------------------ > > _______________________________________________ > List: Catalyst[at]lists.scsys.co.uk > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/ > Dev site: http://dev.catalyst.perl.org/ _______________________________________________ List: Catalyst[at]lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst[at]lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/
|