sudo로 실행할 때 OS X dtruss 출력을 어떻게 재전송 할 수 있습니까?


8

나는 뛰고있어 dtruss Mac OS X 10.9에서. 간단한 예 :

sudo -c ls

그러나 나는 dtruss 파일로 출력한다. 내가 뭔가를 할 수 있다고 제안하는 것을 보았다.

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

하지만 이렇게하면 dtruss 여전히 터미널 및 파일 목록에서 이동합니다. ls 파일로 리디렉션됩니다.

어떻게 출력을 리디렉션 할 수 있습니까? dtruss 파일로?


1
dtruss는 아마에 쓴다. stderr 대신에 stdout 마녀는 무엇인가? >x 캡처. 이 질문은 어떻게해야하는지 설명합니다. 리눅스의 덜 행동과 stderr
Nifle

답변:


9

나는 이것을 다음과 같이 실행했다.

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f 자녀 과정을 따르라고 말합니다.
  • -p 추적 할 프로세스 ID를 지정합니다.
  • 12345 프로세스 ID의 자리 표시 자입니다. 너는 그것을 보면서 그것을 얻을 수 있었다. top 또는 ps -A.
  • 2> 출력 파일에 표준 오류를 파이프합니다. 어떤 이유로 dtruss는 stderr에서 모든 것을 출력합니다.

이것이 무엇을 설명 할 수있는 답을 넓힐 수 있습니까? 감사.
fixer1234

'-f'는 하위 프로세스를 따르고, '-p'는 추적 할 프로세스 ID를 지정합니다. '2>' 출력 파일에 표준 오류를 파이프합니다. 어떤 이유로 dtruss는 stderr에서 모든 것을 출력합니다.
Luke Quinane

12345는 프로세스 ID를위한 자리 표시 자입니까 (그리고 그 위치는 어디에서 왔을까요?)?
fixer1234

프로세스 ID의 자리 표시 자입니다. 너는 그것을 보면서 그것을 얻을 수 있었다. top 또는 ps -A.
Luke Quinane
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.