Làm cách nào tôi có thể chuyển hướng đầu ra dtruss OS X khi chạy với sudo?


9

Tôi đang chạy dtrusstrên Mac OS X 10.9. Ví dụ đơn giản là:

sudo -c ls

Nhưng tôi muốn nắm bắt dtrussđầu ra thành một tập tin. Tôi đã thấy một cái gì đó gợi ý rằng tôi có thể làm một cái gì đó như:

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

nhưng khi tôi làm điều này, đầu ra của dtrussvẫn đi đến thiết bị đầu cuối và danh sách các tập tin từ lsđược chuyển hướng đến tập tin.

Làm thế nào tôi có thể chuyển hướng đầu ra của dtrussmột tập tin?


1
dtruss có lẽ viết cho stderrthay vì stdoutphù thủy là những gì >xbắt được. Câu hỏi này giải thích những việc cần làm: Linux ít hành vi và thiết bị lỗi chuẩn hơn
Nifle

Câu trả lời:


9

Tôi đã chạy nó như thế này:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f nói để làm theo quy trình con.
  • -p chỉ định ID quá trình để theo dõi.
  • 12345là một giữ chỗ cho một ID quá trình. Bạn có thể có được điều đó bằng cách nhìn vào tophoặc ps -A.
  • 2>lỗi tiêu chuẩn ống vào tập tin đầu ra. Đối với một số lý do dtruss đầu ra mọi thứ trên stderr.

Bạn có thể mở rộng câu trả lời của bạn để giải thích điều này không? Cảm ơn.
fixer1234 6/03/2015

'-f' nói theo các quy trình con, '-p' chỉ định ID tiến trình nào cần theo dõi, '2>' đưa lỗi tiêu chuẩn vào tệp đầu ra. Đối với một số lý do dtruss đầu ra mọi thứ trên stderr.
Luke Quinane

12345 có phải là một trình giữ chỗ cho ID tiến trình (và nó sẽ đến từ đâu)?
fixer1234 6/03/2015

Nó là một giữ chỗ cho một ID quá trình. Bạn có thể có được điều đó bằng cách nhìn vào tophoặc ps -A.
Luke Quinane
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.