안녕하세요? 왼하루입니다.
파이썬을 개발하다보면 백그라운드로 특정 python file을 실행시키고, terminal 에서는 또다른 test나 작업을 하고 싶을 때가 있습니다.
이때 아래와 같이 실행하면 백그라운드로 실행됩니다.
main.py 를 백그라운드로 실행시킨다고 가정해봅시다.
python3 main.py &
하지만 위와 같이 실행하면 현재 창 종료 시 main.py 또한 종료 되는 단점이 있습니다.
nohup 사용 방법
이때 nohup 을 이용하시면, python은 백그라운드에서 실행되고 process 를 kill 시키기 전까지 백그라운드에서 실행을 지속 시킬 수 있습니다.
nohup python3 main.py &
실행시키면 nohup.out 이 생성되고 여기에 log가 찍히게 됩니다. 이 로그는 print 로 찍히는 로그를 어느정도 쌓았다가, nohup.out에 기록됩니다.
nohup process 종료
nohup 으로 실행되고 있는 main.py를 종료시키기 위해서는 process kill 을 해야 합니다.
먼저 terminal에서 아래와 같이 입력하여 process의 pid 번호를 알아야 합니다.
ps -ef | grep main.py
위와 같은 내용을 terminal 에 입력하면 아래와 같이 나옵니다.
user+ 106957 78533 96 23:19 pts/6 00:00:10 python3 main.py
user+ 107027 78533 0 23:19 pts/6 00:00:00 grep --color=auto main.py
여기에서 user+ 옆의 106957 이 현재 python3 main.py 를 실행한 process의 pid 입니다.
이를 아래와 같이 입력하여 process를 kill 해주면, 해당 main.py는 종료됩니다. -9 는 옵션입니다.
kill -9 106957
저 같은 경우에는 flask의 웹서버나 챗봇 api 서버를 실행시킬 때 nohup을 이용하여 백그라운드에서 돌아갈 수 있도록 해주고 있습니다.
도움이 되셨길 바라며, 행복한 개발라이프를 즐기시길 바랍니다.
감사합니다.
'개발 > python' 카테고리의 다른 글
python 문자열 포매팅, string 을 세밀하게 다루는 방법 (4) | 2022.04.12 |
---|---|
python os 모듈, 알아두면 유용한 5가지 함수 (0) | 2022.04.06 |
python 타입 비교 및 확인, type 함수 대신 isinstance 함수 사용법 (0) | 2022.04.01 |
python 진행 사항 확인, progressbar 간단 사용 방법 (0) | 2022.03.29 |
[python] logging 이용하여 log 쉽게 남기기 (0) | 2021.09.13 |
댓글