본문 바로가기
Linux

Linux - Critical(process disconnect) 처리

by jongSuN 2021. 9. 28.

운영 서버 상에서 데이터 계속 들어오지만, 웹서버에서 critical error가 뜬 경우

python3으로 실행 시 터미널이 끊기면 hangon.py가 계속 죽어서 웹서버에 critical 알람이 뜰 수 있다.

 

 

처리 1 : 기본적으로 터미널에서 세션 로그아웃이 발생하면 리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal이 전달하여 종료시키게 되는데 이 HUP signal을 프로세스가 무시(ignore)하도록 하는 명령어라서 nohup이라는 이름인 것이다.

결과적으로 터미널에서 연결이 끊기거나 터미널을 종료해도 실행했던 프로세스들이 계속 실행될 수 있는 것이다.

→ nohup 명령어를 사용하여 실행

nohup [processName] &

위 명령어는 터미널의 세션 연결이 끊어지더라도 지속적으로 동작할 수 있게 해주는 명령어이다.

 

 

처리 2 : ssh 세션 종료 후 프로세스 실행을 유지하는 방법이다.

a. ssh를 원격 상자에 넣는다. 입력 screen한 다음 원하는 과정을 시작한다.

b. Ctrl + A를 누른 다음 Ctrl + D를 누른다. 이렇게 하면 화면 세션이 분리되지만 프로세스는 계속 실행된다. 이제 원격 상자에서 로그아웃 할 수 있다.

c. 나중에 돌아오려면 다시 로그인하고 아래의 명령어를 입력한다.

screen -r

그러면 화면 세션이 다시 시작되고 프로세스의 출력을 볼 수 있다.

 

참조

https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session

https://arnab-k.medium.com/how-to-keep-processes-running-after-ending-ssh-session-c836010b26a3

https://raspberrypi.stackexchange.com/questions/29348/keep-process-running-after-close-session/29352

댓글