1. 程式人生 > >Linux下重導進程輸出

Linux下重導進程輸出

-s 錯誤 方程 fig cut tro 標準輸出 make 指令

linux下要重導進程輸出(包括標準輸出和標準錯誤),需要第三方程序strace(關於strace的編譯請見本文最底說明)。

執行下列指令可以將進程 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文件;

Linux下重導進程輸出