GNU/Linux >> Belajar Linux >  >> Linux

Redirect strace ke file

Adakah alasan khusus mengapa Anda tidak dapat menggunakan flag -o?

ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt

Juga, Anda harus menggunakan beberapa trik regex untuk tidak menangkap proses grep Anda dalam daftar proses.

ps auxw | grep 'sbin/[a]pache' ....

Ingat juga bahwa dalam kasus khusus apache,

  1. Apache (biasanya) multiproses, apakah Anda ingin mendapatkan induk atau salah satu anaknya? Saya akan menambahkan flag '-f' ke strace, yang (antara lain) memasukkan PID ke dalam output.
  2. Anda bisa mendapatkan ID proses dari proses induk utama dari file PID.

    misalnya strace -o /tmp//trace.txt -f $(

Jadi, itulah pertanyaan yang Anda tanyakan .. tapi apa yang Anda coba lakukan? Debug saat memulai? strace proses anak melayani permintaan? Lihat juga flag -X untuk apache.


Secara umum, strace "dapat dialihkan ke file" tetapi ia menulis hasilnya ke stderr (mencampurnya dengan stderr program), jadi akan seperti

strace progname 2>my_strace_output

Jika Anda ingin "semua hasil" pergi ke file:

strace progname 1>my_strace_output 2>&1

jika Anda ingin dapat "mengambilnya":

strace progname 2>&1 | grep ...

namun berhati-hatilah jika Anda grep dan mengirimkannya ke file banyak buffering terjadi:https://unix.stackexchange.com/questions/338330/grepping-strace-output-gets-hard


Linux
  1. Bagaimana Cara Mengarahkan Output Program Ke File Zip??

  2. Redirect Dan Output Pipa?

  3. Grep Bagaimana Cara Menekan Tampilan File yang Tidak Cocok?

  1. Perintah grep Linux

  2. Bagaimana cara mengarahkan output dari system() ke file?

  3. grep tanpa menunjukkan path/file:line

  1. grep daftar besar terhadap file besar

  2. Cara grep \n dalam file

  3. Cara mengarahkan output dari layanan systemd ke file