Задать вопрос
1210mk2
@1210mk2

Определить, что скрипт запущен из-под родительского (proc_open)?

Привет.
К проекту прикручен Symfony\Process, у которого под капотом proc_open().
По крону запускается parent_script.php. Внутри этого скрипта запуск еще одного child_script.php (через тот самый proc_open). Перед запуском по крону parent_script пишет в консоль "Run child_script".

Полезное дело совершает child_script.php. Он запускается, как описано выше по крону, но иногда напрямую из консоли руками. Как внтури child_script определить, был ли это запуск по крону или вручную?

Что пробовал:
debug_backtrace() показывает историю только "себя". Не уловил даже в аргументах разницы 2х запусков.
Была мысль зацепиться за то, что крон запускает скрипт как child_script.php > /dev/null 2>&1, но в параметрах debug_backtrace это никак не отражается.
Может можно как-то прочитать stdout (с ним опыта нет, я не уверен что он общий) и из-под child_script увидеть запись "Run child_script", сделанную родителем?

Что подскажете?
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
7workers
@7workers
добавить особый параметр:
proc_open("php child_script.php --started_from_parent=yes" ...)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы