Re: Starting a background process and reporting failure if applicable

From: Date: Wed, 19 Aug 2020 11:44:44 +0000
Subject: Re: Starting a background process and reporting failure if applicable
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-327311@lists.php.net to get a copy of this message
I didn't want for the main script to wait 1 s to determine whether the script was launched... But, yes, thank you for the comment! Janis trešd., 2020. g. 19. aug., plkst. 14:42 — lietotājs Arno Kuhl (< arno@dotcontent.net>) rakstīja: > The idea would be for the background task to set a flag in shared memory > showing it had started successfully, and the parent process could check for > that flag to confirm the background task/s had started, if it times out > after a second then the background failed to start. Obviously once it’s > running it can set values as well to show progress of the background task/s. > > > > > > *From:* Jānis Elmeris [mailto:janis.elmeris@lv.lv] > *Sent:* Wednesday, 19 August 2020 10:14 > *To:* arno@dotcontent.net > *Cc:* php-general > *Subject:* Re: Starting a background process and reporting failure if > applicable > > > > Thank you for the idea! > > > > I understand that some proper background service is an option, that could > take its input from a database and do its work independently from the > initiator script (I don't really need any response back from the job to act > upon, just to know that it was executed without errors). > > > > I just hoped that there is some quicker, dirtier way of just spawning a > separate process to not hold the main one, while still being able to > monitor if any error has occurred. > > > > Janis > > > > otrd., 2020. g. 18. aug., plkst. 18:16 — lietotājs Arno Kuhl (< > arno@dotcontent.net>) rakstīja: > > Would shared memory work to communicate between the scripts? > > https://www.php.net/manual/en/book.apcu.php > > > > > > *From:* Jānis Elmeris [mailto:janis.elmeris@lv.lv] > *Sent:* Monday, 17 August 2020 15:15 > *To:* php-general > *Subject:* Starting a background process and reporting failure if > applicable > > > > 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 (#327311) next »