strace
여물통을 실행하려고 하는데 ccze
파이프라인이 예상대로 작동하지 않습니다.
테스트를 실행하는 데 사용하는 명령줄은 다음과 같습니다 sudo strace -p $(pgrep apache2) | grep open
. 모든 줄이 출력되고 grep은 무시됩니다.
strace
이런 행동에 특별한 이유가 있나요 ?
답변1
strace
표준 출력이 아닌 표준 오류에 대한 추적을 인쇄합니다. 프로그램의 표준 오류를 리디렉션하는 것이 일반적이기 때문입니다. 그러나 strace의 표준 오류와 프로그램의 표준 오류를 혼합하는 것은 일반적으로 문제가 되지 않습니다.
따라서 strace
파이프할 수 있도록 stderr를 stdout으로 리디렉션해야 합니다.
sudo strace -p $(pgrep apache2) 2>&1 | grep open
당신이 정말로 원하는 것은 제외하고
sudo strace -p $(pgrep apache2) -e open