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

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 :-))

Replies are listed 'Best First'.
Re^4: Perl script as daemon
by Anonymous Monk on Apr 27, 2009 at 08:02 UTC
    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 :-))
Re^4: Perl script as daemon
by Anonymous Monk on Apr 28, 2009 at 17:14 UTC
    The special variables have -1 and 'No child processes'...