David Sveningsson wrote:

> Hi, I've written an application in c which I would like to start/stop
> as a daemon in gnu/linux.
> 
> The application has the argument "--daemon" which forks the process
> and exits the parent. Then it setups a SIGQUIT signal handler to
> properly cleanup and terminate. It also maintains a lockfile (with the
> pid) so only one instance is allowed.
> 
> So, to start this application I created a php site that calls
> exec("/path/to/binary --daemon > /dev/null 2> /dev/null").
> 
> Everything is working so far, but I cannot get the application to
> receive the SIGQUIT when I start using php and exec. Not even manually
> using kill in the shell. It works correctly if I start manually
> thought.

So obviously something is catching the SIGQUIT before it gets to your
daemon.  You mention "a php site", so I take it you're running apache. 
In an apache process you then do an exec(something).  I think apache is
probably taking care of the SIGQUIT.

> So, is this possible to do? Doesn't exec allow applications with
> signal handlers? Is there some other way to terminate the application?

Why do you have to kill it with an explicit signal - why not not have a
way of communicating with the process that'll make it terminate when
you raise a flag or send it a message or something. 


/Per Jessen, Zürich

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to