ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kill 명령어 사용
    프로그래밍/linux 2018. 2. 8. 14:07
    728x90

    python process 를 백그라운드로 동작 시키기 위해서는 nohup이나 뒤에 '&'를 붙여 주면 되는데...


    종료하기 위해서는 해당 PID를 kill 명령을 내려야 한다.



    예전에는 kill -9 만 썼는데...


    이게 그렇게 나이스 한 방법은 아니라는게 문제다...


    그래서 kill 명령 관련 자료를 찾아 보았다.


    kill 명령은 프로세스를 무조건 죽이는 명령이 아니라


    해당 프로세스와 커뮤니케이션을 한다고 보면 된다.


    '난 정말 아무것도 모르고 사용 한 것이었다..ㅡㅡ'


    'kill -l'


    명령을 보면 kill 명령 옵션이라고 해야 하나 그런 것들이 다양하게 나온다.



    음.. 도대체 뭐야...


    1. SIGHUP(HUP) : 연결 끊기. 프로세스의 설정파일을 다시 읽는데 사용된다.

    2. SIGINT(INT) : 인터럽트

    3. SIGQUIOT(QUIT) : 종료

    4. SIGILL(ILL) : 잘못된 명령

    5. SIGTRAP(TRAP) : 트렙 추적

    6. SIGIOT(IOT) : IOT 명령

    7. SIGBUS(BUS) : 버스 에러

    8. SIGFPE(FPE) : 고정 소수점 예외

    9. SIGKILL(KILL) : 죽이기. 이 시그널은 잡히지 않는다.

    10. SIGUSR1(USR1) : 사용자 정의 시그널 1

    11. SIGSEGV(SEGV) : 세그멘테이션 위반

    12. SIGUSR2(USR2) : 사용자 정의 시그널 2

    13. SIGPIPE(PIPE) : 읽을 것이 없는 파이프에 대한 시그널

    14. SIGALRM(ALRM) : 경고 클럭

    15. SIGTERM(TERM) : 소프트웨어 종료 시그널, 일반적으로 kill 시그널이 전송되기 전에 전송된다. 잡히는 시그널이기 때문에 종료되는 것을 트랙할 수 있다.

    16. SIGKFLT : 코프로세서 스택 실패

    17. SIGCHLD(CHLD) : 자식 프로세스의 상태변화

    18. SIGCONT(CONT) : STOP 시그널 이후 계속 진행할 때 사용

    19. SIGSTOP(STOP) : 정지. 이 시그널 역시 잡을 수 없다.

    20. SIGTSTP(TSTP) : 키보드에 의해 발생하는 시그널로 Ctrl+Z로 생성된다.


    뭐가 많다..


    하지만 프로세스를 종료 하는데 쓰이는 것은 -9 보다는 -15를 추천한다.


    -9 는 강제 종료 개념이고


    -15는 진행중인 작업과 clean up 작업을 완료 하고 종료 하는 것이라고 보면 된다.


    간단히 


    백그라운드에서 돌고 있는 프로세스를 종료하는 스크립트를 예로 들면


    if [ -f $PID_FILE ]; then

        kill -15 `cat $PID_FILE`


        while kill -0 `cat $PID_FILE` >/dev/null 2>&1

        do

            echo Exiting...

            sleep 1

        done

        echo STOPPED

        rm $PID_FILE

    else

        echo "It seems that the process isn't running."

    fi


    이정도로 하면 되겠다.

    728x90

    '프로그래밍 > linux' 카테고리의 다른 글

    Bash Shell euc-kr => utf-8 변환  (0) 2018.02.13
    alternative 를 이용한 기본 java version 변경  (0) 2018.02.13
    서버에 열려 있는 PORT 확인  (0) 2017.12.20
    SSH SESSION 관리  (0) 2017.12.20
    ulimit 설정 관련  (0) 2016.05.13
Designed by Tistory.