我们一般无法直接用眼观察到在后台运行的应用程序的标准输出/错误,除非重启应用程序。
如果不想重启应用程序,则要设法重导后台进程的输出:
linux下要重导进程输出(包括标准输出和标准错误),需要第三方程序strace,
编译好strace(关于strace的编译请见底下说明)并将其安装到/usr/bin后,
我们就可以重导进程的输出了:
执行下列指令可以将进程 id 为 ${PID} 的所有输出到重导到 /tmp/outs
- strace -e trace=all -s 200 -f -o /tmp/outs -p ${PID}
使用下列指令可以取出标准错误内容(以 java 程序标准错误为例)
- cat /tmp/outs | grep "write(2," | cut -d ',' -f 2 | grep -v "\\n" | sed -e 's/\"//g' | sed -e 's/\t/ /g'
如何编译strace:
- 从网上下载strace_xxxx.tar.gz文件
- 使用 tar zxvf 将strace.tar.gz 解压缩;
- 切换到解压缩路径,编辑以下脚本,执行编译(以powerpc平台为例)
CC=ppc_82xx-gcc LD=ppc_82xx-ld RANLIB=ppc_82xx-ranlib
./configure --host=powerpc-linux --target=powerpc-linux
make - 编译完成后在相同路径即可见到二进制的strace文件;
转载于:https://blog.51cto.com/oldycat/2309395