예상되로 안되는 시그널처리..
글쓴이: 익명 사용자 / 작성시간: 수, 2003/05/07 - 6:21오후
테스트 프로그램의 내용은 이렇습니다.
fork()를 통해 자식프로세스를 생성하고 execl로 다른 프로그램으로 대체합니다.
대체된 프로그램은 루프를 돌며 일정 단어를 출력합니다. 부모 프로세스가 10 기다린뒤 자식에게 SIGSTOP을 날립니다..또 10초 뒤에 SIGCONT를 날립니다...이게 정상으로 돌아가면 부모가 자식프로세스를 맘대로 중단시켰다가 다시 재시작시켰다가 할수 있게됩니다..이걸 하고 싶습니다...
질문1) 부모프로세스는 자식프로세의 pid를 어떻게 알수 있을까요?..프로세스간 통신을 해야할까요? 기냥은 죽어도 안되는듯...쩝.
질문2) 일단 통상적으로 자식프로세스는 부모프로세스보다 1많으니 기냥 통밥(kill(getpid()+1, SIGSTOP)으로 시그널 보내는데는 성공했습니다. 허거덩...SIGSTOP을 날리는데 까진 좋았는데... 부모까지 STOP하지 않겠습니까? 어찌된 영문인지..
SIGNAL의 고수님들..한수..지도 부탁드립니다..
하나 잘 키운 SIGNAL 열 SIGNAL 안 부럽당..!!
Forums:
man 2 fork
man 2 fork
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
해결했습니다..감사합니다..
어쩐지..없어서는 안되는게 없더라니..저의 무지군요..
근데...fork()해서 받은 child pid와 기냥 연산을 통해 얻는 child pid의 값은 같은데 왜 다르게 작동하는 걸까요?...참 희안한네요...
시그널 처리도 정상(?) 작동되네요...
암튼 원하던 결과를 얻게되서 기쁘고요..감사합니다...
시그널이 이제 제편이 된거 같습니다...꾸벅..
댓글 달기