[Python] 백그라운드 실행 (nohup)
🔧 nohup
백그라운드에서 파이썬 코드를 실행하려면 어떤 방법을 써야할까?
보통 linux에서 &를 마지막에 붙이면 백그라운드 작업을 할 수 있다.
하지만, 이 방법은 안전한 방법이 되지 않는다.
해당 쉘이나 터미널이 종료되면 같이 종료된다.
따라서 우리는 nohup
을 사용할 것이다.
nohup
: no hangup의 줄임말, ‘끊지마!(프로세스를 끊지마!)’라는 뜻. 리눅스 명령어임.
터미널 세션이 끊겨도 프로그램을 종료하지 마라! 라는 명령어.
어떠한 프로그램을 종료 없이 백그라운드에서 실행시키기를 원한다면,
$ nohup python test.py &
를 입력한다면 백그라운드 실행이 될 것이다.
-> 위 명령어는 안전하게 &(백그라운드)
와 nohup
을 같이 쓰는 방법이다
실시간 로그와 함께 백그라운드 작업을 하는 법
실시간으로 로그를 확인하며 백그라운드 프로그램을 돌릴 수도 있다.
$ nohup python -u test.py &
: -u 옵션 추가
$ tail -f nohup.out
: 로그 출력
위 명령어로 실시간 로그를 출력하며 백그라운드 작업을 할 수 있다.
PID 알아내기
$ ps -ef | grep test.py
또한, 위 명령어로 현재 백그라운드에서 어떤 프로그램이 돌아가는지 PID를 확인할 수 있다.
프로세스 종료
$ kill PID
마지막으로 백그라운드에서 돌고있는 프로세스를 종료하는 명령이다.
💡 참고로 권한이 755 이상이여야 nohup으로 파일을 실행시킬 수 있다.
따라서 권한 변경을 하기 위한 코드를 첨부한다.
chmod 755 camera.py
Leave a comment