У меня есть команда, из которой я выполняю функцию PHP и записываю вывод в файл журнала, и после ее успешного выполнения я хочу выполнить следующую команду, которая должна отправить электронное письмо о состоянии первой команды.
Например
$nextCommand = 'php _protected/yii xyz-integration/job-status-email ' . $processId . ' >'.realpath(Yii::$app->basePath) . '/../../uploads/second_log.log 2>&1 & echo $!';
$command = 'php _protected/yii xyz-integration ' . $processId . ' >'.realpath(Yii::$app->basePath) . '/../../uploads/first_log.log 2>&1 & echo $! && '.$nextCommand;
exec($command, $output);
Благодаря этому я могу отобразить вывод php _protected / yii xyz-интеграции '. $ processId. ' в realpath (Yii :: $ app-> basePath). «/../../Uploads/first_log.log.
Но после запуска этого процесса я хочу отправить электронное письмо о состоянии первой команды. Прямо сейчас я получаю статус In-Progress , что означает, что $ nextCommand не получает выполнение после того, как первый завершил выполнение (Здесь в моем случае я хочу статус, который должен быть как успех, так и неудача который был обновлен в базе данных первой командой). Если я удалю & echo $! тогда это не будет регистрировать вывод / ошибку в файл журнала, который необходим.