Seongwon Lim

[Python] nohup을 이용한 파이썬 모듈 백그라운드 실행 본문

Python

[Python] nohup을 이용한 파이썬 모듈 백그라운드 실행

limsw 2023. 9. 6. 13:42
반응형

서론

이번 글에서는 파이썬 코드를 백그라운드에서 실행하는 방법을 알아보고자 한다.

 

Nohup 이란?

주로 리눅스(linux) 운영체제 계열에서 본인이 실행한 파이썬 모듈의 프로세스가 죽지 않고

백그라운드상에서 계속해서 돌아가게끔 구현하고자 할 때 많이 사용하며,

 

의미는 'No Hangup' 의 줄임말로 '무언가를 끊지 말라는 뜻'이다.

해당 글에서의 무언가는 파이썬 모듈이 돌아가고 있는 프로세스를 의미한다.

사용 방법

nano start.sh # 또는 vi start.sh

nohup 명령어를 실행하기 위한 쉘스크립트 파일을 열고, 아래와 같이 명령어를 입력한다.

nohup python3 [파이썬 파일 경로] &

예를 들어, 본인의 파이썬 파일 main.py 가 /home/user 아래에 존재한다면

 

  • nohup python3 /home/user/main.py & 와 같이 작성 후 파일을 저장하고 나온다.
  • 마지막 & 표시는 백그라운드 모드로 코드를 실행한다는 의미이다.

다음으로는, nohup 명령어를 사용하기 위해 쉘스크립트 파일의 권한을 변경한다.

chmod 755 start.sh

위 절차를 통해 파이썬 코드를 백그라운드에서 실행하기 위한 준비가 완료되었다.

start.sh를 실행하고나면, 같은 경로에 nohup.out 파일이 생성된다.

 

  • cat nohup.out 또는 tail -f nohup.out 등의 명령어를 통해 로그를 확인할 수 있다.

실행중인 프로세스 종료하기

쉘스크립트를 통해 실행한 프로세스를 종료하고 싶은 경우에는 아래 절차를 통해 프로세스를 종료할 수 있다.

 

  • ps -ef | grep main.py 명령어를 입력하여 실행중인 main.py의 PID를 알아낸다.
  • 예를 들어, PID가 12345인 경우 kill -9 12345 명령어를 입력하여 해당 프로세스를 종료한다.
$ ps -ef | grep main.py # PID = 12345
$ kill -9 12345

 

Comments