Re: Starting a background process and reporting failure if applicable

From: Date: Mon, 17 Aug 2020 13:29:49 +0000
Subject: Re: Starting a background process and reporting failure if applicable
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-327287@lists.php.net to get a copy of this message
It would be better to use proc_open imo which will allow you to get the output/state built in php functionality: https://www.php.net/manual/en/function.proc-open.php On Mon, Aug 17, 2020 at 9:15 AM Jānis Elmeris <janis.elmeris@lv.lv> wrote: > Hello! > > I would like to start a PHP script in the background from within another > PHP script. I would like to monitor all error cases properly. > > Is there an easy way to see if that background script was started > successfully? The background script would write its errors into an error > log that I'm monitoring. But what about starting the script itself? > > I'm trying to start a background script like this: > > exec('nohup php sleeps.php > /tmp/tt 2>&1 &', $output, $status); > error_log('execute_shell: ' . var_export(['status' => $status, > 'output' => > $output], true)); > exec('nohup php sleeps_nonexist.php > /tmp/tt 2>&1 &', $output, > $status); > error_log('execute_shell: ' . var_export(['status' => $status, > 'output' => > $output], true)); > > The first exec runs all right in the background > (asynchronously). > The second one behaves in exactly the same way ($status === 0), > even > though file "sleeps_nonexist.php" does not exist. > > Running in the command line manually, this would give status 0: > nohup php sleeps.php > /tmp/tt 2>&1 > echo $? > > This would give status 1: > nohup php sleeps_nonexist.php > /tmp/tt 2>&1 > echo $? > > Regards, > Janis >

« previous php.general (#327287) next »