프로세스의 종료 신호를 어떻게 전달받을 수 있을까요?
글쓴이: forcos / 작성시간: 금, 2003/12/05 - 11:33오전
통신 프로그램을 만들고 있는 중입니다.
프로그램 실행 중에 새로운 프로세스를 만들고,
그 프로세스가 FTP로 서버에 접속해서 파일을 다운받도록 하고자 합니다.
프로세스를 생성해서 파일을 받는 것은
system()을 사용해서 쉘 스크립트를 실행하면 될 것 같은데,
문제는 파일 받는 것과 별개로 다른 작업도 수행을 해야한다는 겁니다.
또한, 파일을 모두 다운받은 시점을 알았으면 합니다.
파일 받는 프로세스가 종료되면 어떤 신호를 받아 처리하고 싶은데
어떤 방법이 있을까요?
막연하게 쉘 스크립트를 backgroud로 실행하고,
쉘 스크립트가 끝나는 시점에
application에 종료 신호를 주면 되지 않을까하고 방법을 찾아봤지만,
리눅스엔 초보라 아직 종료 신호를 보내는 방법을 찾지 못하고 있습니다.
그리고, 만약 프로세스 생성을 fork()를 사용해서 한다면
더 간단한 방법이 있을까요?
고수님들 도움 좀 부탁드리겠습니다.
Forums:
system은 명령 실행 후 결과 코드를 리턴합니다.0이 아니면 비정
system은 명령 실행 후 결과 코드를 리턴합니다.
0이 아니면 비정상 종료겠죠(명령의 종료코드를 보세요).
system()은 블록되므로 병행 작업을 하려면 fork 후 사용하면 됩니다.
종료 처리는 fork된 child 프로세스에서
system() 호출이 리턴한 종료코드를 가지고 하던가,
아니면 main에서 waitpid()로 동기화하거나,
signal 핸들러를 사용하던가 등등의 방법이 있습니다.
----
http://nohmad.tumblr.com/
댓글 달기