--- Mark Zealey <[EMAIL PROTECTED]> wrote:

> Perhaps I'm missing something, but what's the
> problem with doing something 
> like:
> 
> package MyApp;
> 
> $SIG{INT} = sub {
>   graceful_shutdown();
>   exit(1);
> }
> 
> END { graceful_shutdown() }
> 
> sub graceful_shutdown {
>   # Code here...
> }
> 
> Note that a $SIG{INT} will not exit if you override
> it, which is why you need 
> the exit. This means that you could make it restart
> on a SIG{INT} (or perhaps 
> better, $SIG{HUP})

Hmm, I didn't know that (obviously).  That's probably
why when I do 

$SIG{INT} = sub {}

in my MyApp.pm file I get the proper cleanup, since
I'm capturing the call for an immediate interrupt.  I
guess the TERM signal must work the same way.

The main problem for me is not that I have shutdown
and cleanup in my custom code, but that some modules
I'm using (File::Temp) define END blocks to perform
their own cleanup chores.  Really I think this is the
best way, rather than to try and have one big uber
cleanup routine in my core module, let each module
that needs to do housekeeping handle it's own.

Thanks to you for pointing this out to me, and to
others who've responded and pointed out other useful
bits.

--john

> 
> Mark
> 



       
____________________________________________________________________________________Ready
 for the edge of your seat? 
Check out tonight's top picks on Yahoo! TV. 
http://tv.yahoo.com/

_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to