그렙에 배관을 배관


30

stracetrough 를 실행하려고하는데 ccze파이프가 예상대로 작동하지 않습니다.

테스트하려고 실행중인 명령 줄은입니다 sudo strace -p $(pgrep apache2) | grep open. 그리고 grep를 무시하고 모든 줄이 출력됩니다.

strace이 동작을 일으키는 특별한 점이 있습니까?

답변:


48

strace표준 출력이 아닌 표준 오류에 추적을 인쇄합니다. 프로그램의 표준 출력을 리디렉션하는 것이 일반적이지만 일반적으로 strace의 stderr과 프로그램의 stderr이 혼합되어있는 문제는 아닙니다.

따라서 strace파이프 할 수 있도록의 stderr을 stdout으로 리디렉션해야 합니다.

sudo strace -p $(pgrep apache2) 2>&1 | grep open

당신이 정말로 찾고있는 것을 제외하고는

sudo strace -p $(pgrep apache2) -e open

작동합니다 !! 고맙습니다! -실제로 open전화 만 보려고하지는 않았습니다 . 예를 들어 제가 실제로하려는 것은 색상 강조입니다.
Andrei

strace: Invalid process id: '-e'마지막 명령을 받고 있습니다. 버전 4.8에 있습니다. 2010-03-30.
Elijah Lynn

아, 실제로 httpd (RHEL)가 있습니다.
Elijah Lynn

1
@ElijahLynn apache2관심있는 프로세스의 이름으로 교체하십시오 . pgrep단일 PID 를 인쇄 하는지 확인하십시오. 그렇지 않으면 하나를 선택하여 실행하십시오.sudo strace -p 1234 -e open
Gilles 'SO-stop

@Andrei, vim색상 구문 강조를 사용하는 것은 어떻습니까? strace $CMD 2>&1 > /dev/null | vim -c ':set syntax=strace' -.
Pablo A
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.