Php exec() return code is -1 when in a forked process, but 0 in a normal script
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?
pcntl_signal(SIGCHLD, SIG_DFL);
exec('...');
pcntl_signal(SIGCHLD, 'whatever it was');
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.
精彩评论