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