[완료-bash shell] shell variable : $! > pipe를 이용하였을 때, background pid를 알고 싶습니다.
글쓴이: APRIL1024 / 작성시간: 목, 2009/07/30 - 11:24오전
안녕하세요. shell 을 배운지 얼마 안된 초짜 입니다.
현재 learning the bash shell 책을 보고 있습니다.
shell variable중 $! 는 "A related built-in shell variable is $!, which contains the process ID of the most recently invoked background job"이라고 설명 되어 있습니다.
shell에서 1개의 명령어를 background로 돌렸을 경우 echo $! 했을 때 올바르게 값이 나옵니다만,
2개의 명령어를 pipe로 연결 했을 때,
i.e) cat a.txt | less &
위와 같이 명령어를 실행하고 $!를 출력했을 때, less pid가 출력됩니다.
질문 1) 위와 같이 2개의 명령어를 pipe로 연결 했을 때, cat 의 pid는 알 수 없는지요?
질문 2) 위와 같이 한 명령어에서 pipe로 연결 하지 않고, 다른 방법을 이용해서라도 위 명령어가 실행이 되고, 2 명령어의 pid를 알 수 있는 방법은 없을까요?
Forums:
pipe로 연결된
pipe로 연결된 프로세스들은 process group ID(pgid)가 같으므로, ps 명령을 써서 해당 pgid를 가진 명령들을 얻으면 됩니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
감사합니다.
제가 원하던 답변 진심으로 감사드립니다. (^_^)
댓글 달기