리눅스 Ctrl+c 및 종료 시그널 처리

인터럽트 종료 시그널 처리

 Linux application에서 인터럽트 종료 시그널 처리 예는 아래와 같다.


#include <sys/signal.h>

void sigint_handler( int signo)
{
    //
}


int main(int argc, char *argv[])
{

    signal(SIGINT, sigint_handler);
    signal(SIGTERM, sigint_handler);


    ...

    return 0;
}


1. signal 함수를 통해 시그널 핸들러 함수를 등록한다.

2. 인터럽트가 발생하면 핸들러 함수가 호출된다.

3. 핸들러 함수에서 해당 인터럽트를 처리한다.


기타 종료 시그널

닫혀 있는 소켓에 데이터를 쓰면,SIGPIPE 시그널이 발생해 application이 종료된다.

이때 application이 종료되지 않도록 하려면 아래와 같은 코드를 추가하면 된다.


signal(SIGPIPE, SIG_IGN);


댓글

이 블로그의 인기 게시물

Keras 모델 가중치 weights 파라미터 가져오기 설정하기 저장하기 및 불러오기

Embedded Linux USB Ethernet Gadget 사용하기

Sleep() 시간 해상도 조절 팁

바로 프로젝트 적용 가능한 FIR Filter (low/high/band pass filter )를 c나 python으로 만들기

간단한 cfar 알고리즘에 대해