Как получить доступ к Stdout / Stderr отдельного процесса?

У меня есть php-скрипт-CLI, который работает (отсоединенный) в фоновом режиме.

Существует ли способ присоединить к, он - Stdout/Stderr для наблюдения вывода приложения?

3
задан 17.01.2011, 08:39

3 ответа

Можно, вероятно, сделать это с gdb. Я записал о процессе в ответе на неопределенно связанный вопрос.

3
ответ дан 07.12.2019, 23:46

dupx является полным решением, которое реализует то, к чему относится @quack:

Dupx является простой утилитой для переотображения файлов уже запускающей программы. Оболочки как Bash позволяют легкое входной/вывод/ошибку перенаправление в то время, когда программа запущена с помощью>,/tmp/stdout перенаправит вывод эха к/tmp/stdout. Стандартные оболочки однако не обеспечивают возможность переотображения (перенаправления) вывода (или вводят, или ошибка) для уже запущенного процесса. Dupx пытается решить эту проблему при помощи дубликата (2) системный вызов из gdb (1). Dupx в настоящее время реализуется как простая обертка оболочки вокруг gdb сценария.
1
ответ дан 07.12.2019, 23:46

Мне нравится использовать strace, это немного менее пугающе, чем GDB.

strace -s 100000 -e write=1  -e trace=write -p $PID 2>&1 | \
   sed 's/^write(1, //;t;d'
2
ответ дан 07.12.2019, 23:46

Теги

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