반응형

 

 

 

안녕하세요 봉자씨입니다

 

파이썬으로 개발을 하다 보면 백그라운드에서 프로그램을 지속적으로 돌여야 하는 경우가 생깁니다.

그럼 파이썬으로 개발한 프로그램을 즉, .py를 어떻게 하면 백그라운드에서 돌리는지 알아 보겠습니다.

 

먼저 가장 간단한 방법이고 우리가 흔히 쓰는 방법 중에 하나는 아래와 같습니다.

 

이 방법은 현재의 창이 닫히게 되면 Terminate 됨
# python FileName.py&

이렇게 창이 닫히게 되면 프로그램도 같이 종료되는 방법이 아니라,

창이 닫히더라도 계속적으로 프로그램이 실행되는 방법이 있습니다.

nohup을 사용하시면 됩니다.

방법은 아래와 같습니다.

 

창을 닫아도 계속 실행이됨
# nohup python filename.py &

 

그렇게 돌리고 나면 nohup.out 이라는 파일에 로그가 쌓이기 시작합니다.

그리고 그 로그를 보기 위해서는 아래와 같은 명령어를 실행 하시면됩니다.

 

nohup실행으로 생긴 로그를 확인하기
# tail -f nohup.out

 

그런데 특성상 로그가 한번에 쌓였다가 나타나게 됩니다. 그래서 아래와 같은 명령어를 실행해서 

바로바로 로그를 확인 할 수 있습니다.

 

# nohup python -u filename.py &
# tail -f nohup.out

 

이제 이렇게 하게 되면 로그가 바로 쌓이는 것을 확인할 수 있습니다.

 

그럼 이제 꼭 파일명이 nohup.out으로만 나오는 것이냐 라고 생각 할 수 있습니다.

프로그램 별로 로그 명을 바꾸고 싶을 수 있습니다.

그럴 경우 아래와 같은 명령어를 사용하시면 됩니다.

 

 nohup  python -u filename.py  >  로그파일명 &

 

이렇게 실행을 하게 되면 백그라운드에서 돌아가되 로그파일명으로 바뀌여 로그가 떨어 지는 것을 확인 할 수있습니다.

그럼 이제 한가지 더 알아야 할 것이 있습니다.

 

바로 백그라운드에 돌고 있는 프로그램을 정지시키는 방법입니다.

방법은 아래와 같습니다.

 

# ps -ef | grep filename.py

 

그럼 현재 백그라운드에서 내가 돌린 프로그램을 확인 할 수 있습니다.

그리고 해당 프로세스를 확인 한 수 프로세스 아이디로 해당 프로그램을 종료 시키면 됩니다.

 

# kill {your ProcessId}

이제 마지막으로 하나 더 꼭 알고 있어야 하는 것이 있습니다.

 

권한이 755 이상이여야만 nohup으로 실행 파일을 돌릴 수 있습니다.
그래서 권한을 바꿔야 한다면 아래와 같이 변경하시면 됩니다.
chmod 755 filename.py
 
반응형