Re: Start/stop daemon using php

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 27, 2008 at 7:51 AM, David Sveningsson <ext@xxxxxxxxxxx> 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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux