[완료]시그널 관련 질문입니다..
글쓴이: wjddncjf / 작성시간: 목, 2010/02/11 - 2:22오후
#include <signal.h> #include <stdio.h> #include <unistd.h> void ouch(int sig) { printf("\nOUCH! - I got signal %d\n", sig); } int main() { struct sigaction act; act.sa_handler = ouch; sigemptyset(&act.sa_mask); act.sa_flags = 0; sigaction(SIGINT, &act, 0); while(1) { printf("Hello World!\n"); sleep(1); } }
---------------------------------------
다음과 같은 예제를 실행해 보았습니다.
컨트롤+C를 막고 끌 때는 컨트롤+\ 등으로 강제종료를 시키는 소스입니다.
제가 이것저것 해보다가
컨트롤+Z 로 멈추고 Kill -18 로 프로세스 재개를 시켰습니다.
그 이후로 컨트롤+Z 나 컨트롤+\ 가 안먹히네요
다른 시그널들도 안먹히는 것 같구요...
SIGCONT을 하면 등록되있는 시그널이 변경되거나 하는건가요?
그게 아니라면 이유가 뭘까요..?
Forums:
job control
STOP 시그널을 받고 background로 넘어가서
더 이상 시그널이 전달되지 않기 때문에 그럴 것입니다.
fg 명령으로 foreground process로 만들어주거나
job 번호나 pid 등으로 직접 시그널을 전달하면 반응할 것입니다.
아...
그렇게 되는 거였군요
답변 감사합니다...
댓글 달기