tags:

views:

30

answers:

2

I am using exec() inside a a script that runs as a daemon and forks child processes using the pear class Net_Server.

I am getting a strange issue whereby the return code (the third param of of exec) comes back as -1. When I run the command on the command line, or with exec in a normal php script the return code is 0 as it should be. Anyone have any idea why this is happening, and how to fix it?

A: 

I guess it is an issue with environment variables. Maybe the thing you are trying to execute is normally in your PATH, but not when you spawn a daemon. Supply the full path to the program.

Sjoerd
A: 
 pcntl_signal(SIGCHLD, SIG_DFL);
 exec('...');
 pcntl_signal(SIGCHLD, 'whatever it was');
Wrikken
Thanks, that worked. The pear class was setting pcntl_signal(SIGCHLD, SIG_IGN);
fb1