Linux下重导进程输出

我们一般无法直接用眼观察到在后台运行的应用程序的标准输出/错误,除非重启应用程序。

如果不想重启应用程序,则要设法重导后台进程的输出:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值