2019. 3. 6. 14:55
반응형

파이썬 파일을 작성하고 실행하려면 python test.py 이런식으로 하면 된다.

그런데 예를들어 어떤 서버에 ssh 접속을 하여 이걸 24시간 실행시켜놓아야 할 경우가 있다.

이런 경우 터미널에서 python test.py를 입력하면 계속 실행이 되는데 ssh 접속을 종료할 경우 이게 같이 종료된다.


처음에는 node.js npm으로 설치가 가능한 forever를 이용하는게 어떨까싶었는데 될지 안될지 확신이 들지는 않았다.

좀더 찾아보니 nohup 명령어를 이용하면 될 것 같아 보였다.



다음과 같이 실행하면 된다.

참고로 같은 폴더 내에 test.log 라는 로그 파일이 생성되도록 한다.

이 로그 파일은 tail -f test.log 명령어를 통해 실시간으로 감상할 수 있다.


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


참고로 테스트는 Ubuntu16에서 진행했다.

python 다음에 -u를 붙여줘야 로그를 실시간으로 바로 볼 수 있다고 한다.


일단 파이썬에서 필요해서 파이썬으로 테스트를 해봤는데 다른 어떤 것을 데몬? 으로 돌리고 싶을 때 이 명령어를 이용하면 될 것 같다.



실행시킨걸 종료하려면 ps -ef | grep test.py 이렇게 실행중인 프로세스를 찾은 다음 kill pid로 종료해야 할 것 같다.

참고로 kill pid로 종료하면 Terminated로 뜨고 kill -9 pid로 종료하면 Killed라고 뜬다.

자세한 차이는 정확히 알지 못하겠는데 다음 링크에 가보면 누군가 영어로 설명해놨다.

https://stackoverflow.com/questions/19206124/difference-between-killed-and-terminated


대충 보면 terminated가 윈도우 버튼을 누르고 시스템종료기능으로 종료한거라면 killed는 컴퓨터 전원버튼을 눌러 강제로 종료한 것과 같다는 설명이 나와있는 것을 볼 수 있다.

반응형