2

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

Есть ли способ присоединиться к его Stdout/Stderr, чтобы увидеть выходные данные приложения?

3 ответа3

3

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

2

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

strace -s 100000 -e write=1  -e trace=write -p $PID 2>&1 | \
   sed 's/^write(1, //;t;d'
1

dupx - это законченное решение, которое реализует то, к чему обращается @quack:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .