On Wed, Feb 27, 2008 at 7:51 AM, David Sveningsson <[EMAIL PROTECTED]> 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").
You can (and should) write this out like so: <? exec("/path/to/binary --daemon >> /dev/nul 2>&1",$ret,$err); ?> The >> means to append to the end of a file. You can use > on /dev/null, since it's not a file, but just a black hole, but you may want to get into the habit of redirecting and appending. The 2>&1 redirects channel 2 (STDERR) to channel 1 (STDOUT) so that all output in this case is sent to /dev/null. For any output that would otherwise be generated, $ret will hold STDOUT data, and $err will hold the STDERR code. > 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, is this possible to do? Doesn't exec allow applications with signal > handlers? Is there some other way to terminate the application? You may want to launch it from a BASh script. I had written out an example for someone on this list at the beginning of the month. Feel free to check it out and use it, or use any part of it: [Download] http://pilotpig.net/code-library/daemonize.sh [View Source] http://pilotpig.net/code-library/source.php?f=daemonize.sh -- </Dan> Daniel P. Brown Senior Unix Geek <? while(1) { $me = $mind--; sleep(86400); } ?> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php