Linux

[nohup] python 프로세스 백그라운드 실행

비번변경 2022. 10. 26. 19:50

개요

보통 Linux에서는 명령어 뒤에 &를 붙여 프로세스를 백그라운드로 실행할 수 있다.

python test.py &

하지만 이러한 실행법은 쉘이나 터미널이 끊기면 프로세스도 함께 중단되는 문제가 있다.

 

 

nohup

nohup은 no hangup의 줄임말로 프로세스 중단이 없다는 의미의 명령어이다. 쉘을 데몬형태롤 실행시켜 세션이 끊겨도 백그라운드 프로세스가 중단되지 않고 유지된다. 

nohup <CMD> &

# 예시
nohup python test.py &

nohup

 

 

nohup.out

기본적으로 nohup 실행 결과는 nohup.out 이라는 파일로 저장된다.

nohup.out

다만 실시간으로 실행 로그가 출력되지는 않는다. 실시간으로 로그를 출력할 때는 python 실행 시 -u 옵션과 함께 실행한다.

nohup python -u test.py &
# -u : stdout 과 stderr 스트림을 버퍼링하지 않도록 한다.

실시간 출력

 

로그 파일명 지정

파일 리다이렉션을 사용하면 nohup.out이 아니라 다른 이름의 파일로 실행 로그를 저장할 수 있다.

nohup python -u test.py > test.log &

로그 파일명 지정

 

 

문단 마지막 사용

https://docs.python.org/ko/3/using/cmdline.html

 

 

728x90