[Catalyst] Killing the standalone perl server programatically
Stefan Washietl
wash at paperpile.org
Fri Jun 12 14:22:00 GMT 2009
> 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@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst
mailing list