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", сделанную родителем?

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 18:27
200000 руб./за проект
26 апр. 2024, в 18:24
80000 руб./за проект
26 апр. 2024, в 18:00
500 руб./за проект