我有一个在后台运行(分离)的 php-cli 脚本。
有没有办法附加到它的 Stdout/Stderr 以查看应用程序的输出?
答案1
您可能可以使用 来做到这一点gdb
。我写了这个过程在回答一个模糊相关的问题时。
答案2
我喜欢使用 strace,它比 GDB 稍微不那么吓人一些。
strace -s 100000 -e write=1 -e trace=write -p $PID 2>&1 | \
sed 's/^write(1, //;t;d'
答案3
杜普克斯是实现@quack 所指的完整解决方案:
Dupx 是一个简单的实用程序,用于重新映射已运行程序的文件。使用 > 启动程序时,Bash 等 Shell 允许轻松进行输入/输出/错误重定向,/tmp/stdout 会将 echo 的输出重定向到 /tmp/stdout。但是,标准 Shell 不提供重新映射(重定向)已启动进程的输出(或输入或错误)的功能。Dupx 尝试通过使用 gdb(1) 内部的 dup(2) 系统调用来解决此问题。Dupx 目前是作为 gdb 脚本的简单 Shell 包装器实现的。