[공부용]참고 사이트 모음/[python]

파이썬 백그라운드로 돌릴 때 로그 실시간 보기

bled 2021. 1. 13. 11:18

www.pymoon.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%EB%A1%9C-%EB%8F%8C%EB%A6%B4-%EB%95%8C-%EB%A1%9C%EA%B7%B8-%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%B3%B4%EA%B8%B0

 

파이썬 백그라운드로 돌릴 때 로그 실시간 보기

파이썬 프로그램을 백그라운드로 돌리는 방법은 다음과 같다. $ python filename.py & 그러나 이 방법은 현재 창을 종료하면 terminate된다는 단점이 있다. 이를 위해 nohup 키워드를 사용할 수 있다. $ noh

www.pymoon.com

파이썬 프로그램을 백그라운드로 돌리는 방법은 다음과 같다.

 

$ python filename.py &

 

그러나 이 방법은 현재 창을 종료하면 terminate된다는 단점이 있다.

이를 위해 nohup 키워드를 사용할 수 있다.

 

$ nohup python filename.py &

 

 

해당 명령어를 입력하면 로그 파일로 nohup.out이라는 파일에 쌓이게 된다.

문제는 print 문으로 찍었던 내용이 바로 nohup.out에 쌓이는게 아니다. 

 

즉 시작해서 

 

$ tail -f nohup.out

 

명령어를 친다고 하더라도 바로 print문으로 했던 것이 화면에 나오는 것이 아니라는 것이다.

어느 정도 쌓였다가, 한 꺼번에 출력하곤 하는데 로그를 보고 싶다면 이는 옳은 방법이 아니다.

 

만약 print문을 바로 바로 보고 싶다면 파이썬의 자체에 가지고 있는 옵션이 있다.

 

$ nohup python -u filename.py &

 

위 명령어를 해 주고

 

$ tail -f nohup.out 

 

바로 print 문이 찍히는 것을 볼 수 있다.

 

리다이렉트 옵션을 써서 애초에 nohup.out이라는 파일 자체가 안나오게 할 수도 있고 파일 명도 바꿀 수 있지만

역시 가장 좋은 방법은 logging 모듈을 그냥 갖다 쓰는 것인 것 같다.



출처: https://www.pymoon.com/entry/파이썬-백그라운드로-돌릴-때-로그-실시간-보기 [파이문]