in reply to Re: Perl script as daemon
in thread Perl script as daemon

Hi, Thanks Bloodnok, see the script itself runs away fine as a daemon, its just the lines that perform the backtick operations will not run at all, but they run fine and return output when the main script is just executed. Sorry if Im not making sense Ive only been at perl a few weeks....

Replies are listed 'Best First'.
Re^3: Perl script as daemon
by Bloodnok (Vicar) on Apr 26, 2009 at 22:31 UTC
    Try checking the standard variables $!/$? after the backticked (perlop) operation(s) to see what the error (if any) returned by the kernel is.

    A user level that continues to overstate my experience :-))
      Thanks, ok so $! says 'No child processes' and $? is '-1'... Do i need another process to perform these actions? Ive tried a few ways of doing this but haven't had any luck...
        Hmmm ,

        From here, we see that the error you see is caused when the parent calls waitpid() on the child process with the given PID and there's no (record of a) child process - so far, so good.

        However, now all that's left to do is to determine WTF is happening to the attempt to start the child process...

        What happens if you (temporarily) modify the daemon to avoid generating any output from the command e.g.

        `command >/tmp/some_file 2>&1`;

        With any luck, the command should run with all output being caught in /tmp/some_file - if so, it's most definitely down to access to one, or more, of the standard devices...which may boil down to the method you use to create your daemon - maybe How do I fork a daemon process might be of help (unless you've already read it, of course:-)

        A user level that continues to overstate my experience :-))
      The special variables have -1 and 'No child processes'...