I'm running into an issue that child processes don't die when they are finished - this appears to be caused by lighttpd running as process 1 and not "reaping" orphaned processes. Is this a known issue that there's a standard workaround for? The specific configuration here is your standard kubernetes php7.2 server, and the following call to start a background process from php (which should finish in about a minute most of the time):
exec("$env_cmds nohup /usr/bin/php run_background.php >> bg.log 2>&1 &");
Note this works fine when I run your docker image the recommended way on my own machine:
docker run --name toolforge -p 8888:80 -v "${PWD}:/var/www/html:cached" -d docker-registry.tools.wmflabs.org/toollabs-php72-web sh -c "lighty-enable-mod fastcgi-php && lighttpd -D -f /etc/lighttpd/lighttpd.conf"
Child processes die normally in the local docker container - but process 1 there is 'sh' and lightttpd is process 7, so something is different about this startup from the cloud services configuration.
Any help would be appreciated!
Arthur
Note - restarting the web service (with 'webservice restart') does clear up the zombie background processes, but that's not particularly friendly...
Arthur
On Tue, Nov 12, 2019 at 1:35 PM Arthur Smith arthurpsmith@gmail.com wrote:
I'm running into an issue that child processes don't die when they are finished - this appears to be caused by lighttpd running as process 1 and not "reaping" orphaned processes. Is this a known issue that there's a standard workaround for? The specific configuration here is your standard kubernetes php7.2 server, and the following call to start a background process from php (which should finish in about a minute most of the time):
exec("$env_cmds nohup /usr/bin/php run_background.php >> bg.log 2>&1 &");
Note this works fine when I run your docker image the recommended way on my own machine:
docker run --name toolforge -p 8888:80 -v "${PWD}:/var/www/html:cached" -d docker-registry.tools.wmflabs.org/toollabs-php72-web sh -c "lighty-enable-mod fastcgi-php && lighttpd -D -f /etc/lighttpd/lighttpd.conf"
Child processes die normally in the local docker container - but process 1 there is 'sh' and lightttpd is process 7, so something is different about this startup from the cloud services configuration.
Any help would be appreciated!
Arthur