쉘관련...ps 명령시 명령자체쉘(자식쉘)도 출력이 되는게 있고
글쓴이: innu / 작성시간: 수, 2004/02/18 - 9:56오전
그러니까... 예를들어서..
# ps -ef | grep proftpd
하면
nobody 소유의 proftpd 프로세스만 출력되는경우도 있고...
ps 명령자체(자식쉘에서 실행되는...)도 함께 출력되는 경우가 있습니다.
제가 계속해서 같은 명령을 날리니까 어떤거는 proftpd 데몬프로세스만 출력되는것도 있고 ps 프로세스도 함께 출력되는것도 있습니다.
왜 이런 현상이 생길까요?
ps가 그렇게 프로그램 되어있는것일까요?
Forums:
ps -ef | grep blah를 쉘이 해석하고 실행 할 때, 다음
ps -ef | grep blah
를 쉘이 해석하고 실행 할 때, 다음과 같은 현상이 일어나서 인것 같습니다.
다음과 같은 경우는 grep이라는 말이 나오지 않습니다.
1) parsing
2) make pipe
3) fork and exec 'ps'
4) *Context switch to ps*
5) ps는 process 나열 stdout으로 출력
6) * Context swtich to shell *
7) fork and exec 'grep'
8) stdout은 pipe로 dup되어 있을 것이고, grep 의 입력으로 전달됨
9) grep 수행
Context swtich가 일어나지 않았다면, grep blah 라는 말이 ps의 결과중에 있으므로 화면에 출력되겠지요.
---
http://coolengineer.com
댓글 달기