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.