Bagaimana saya bisa mengarahkan output dtruss OS X saat menjalankan dengan sudo?


9

Saya dtrussmenggunakan Mac OS X 10.9. Contoh sederhana adalah:

sudo -c ls

Tapi saya ingin menangkap dtrussoutput ke dalam file. Saya melihat sesuatu yang menunjukkan bahwa saya dapat melakukan sesuatu seperti:

sudo bash -c 'dtruss -c ls >x'

tetapi ketika saya melakukan ini output dtrussmasih pergi ke terminal dan daftar file dari lsakan diarahkan ke file.

Bagaimana saya bisa mengarahkan output dtrusske file?


1
dtruss mungkin menulis untuk stderrbukannya stdoutpenyihir adalah yang >xmenangkap. Pertanyaan ini menjelaskan apa yang harus dilakukan: Linux lebih sedikit perilaku dan stderr
— Nifle

Jawaban:


9

Saya sudah menjalankannya seperti ini:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f mengatakan untuk mengikuti proses anak.
  • -p menentukan ID proses yang akan dilacak.
  • 12345adalah pengganti untuk ID proses. Anda bisa mendapatkannya dengan melihat topatau ps -A.
  • 2>pipa kesalahan standar ke file output. Untuk beberapa alasan, dtruss menampilkan semuanya pada stderr.

Bisakah Anda memperluas jawaban Anda untuk menjelaskan apa artinya ini? Terima kasih.
— fixer1234

'-f' mengatakan ikuti proses anak, '-p' menentukan ID proses yang akan dilacak, '2>' mem-pipe standard error ke file output. Untuk beberapa alasan, dtruss menampilkan semuanya pada stderr.
— Luke Quinane

Apakah 12345 pengganti untuk ID proses (dan dari mana asalnya)?
— fixer1234

Ini adalah pengganti untuk ID proses. Anda bisa mendapatkannya dengan melihat topatau ps -A.
— Luke Quinane
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.