리눅스에서 내가 만든 프로그램을 실행하는 방법입니다
프로그램 실행시키기
내가 만드 프로그램은 /home/monitor/monitor.py 파일입니다
파이썬3버전으로 업그레이드하면
python3 명령어로 실행 해야 합니다
$ cd /home/monitory
$ python3 ./monitory.py
파일이 있는 경로로 이동하여 실행합니다
이때 백그라운드로 실행하기 위해서는 nohup를 사용합니다
$ nohup python3 monitor.py&
이렇게 입력하면 백그라운드로 실행이되기 때문에 터미널이 닫혀도 프로그램은 작동합니다
프로그램 중지시키기
프로세서명으로 종료하는 방법입니다
우선 프로세서가 실행 되고 있는지 파악하기위해
$ ps -ef | grep monitor
실행여부를 파악합니다
프로그램이 작동중이라면 monitor.py 프로세서가 있게 됩니다
이때
$ pkill -9 -ef monitor.py
명령어로 해당 프로그램을 중지시킬수 있습니다
프로그램이 오작동하여 중지될수도 아님 다른 문제가 발생될수가 있습니다
그래서 1시간에 한번씩 프로그램을 종료하고 다시 실행해주려 합니다
1시간에 한번씩 종료후 재실행하기위해서는 크론탭(crond) 활용하면됩니다
크론탭에 스케쥴 추가하기
$ vi /etc/crontab
아래와 같이 추가하면 정상적으로 작동하지 않습니다
59 * * * * root pkill -9 -ef monitor.py
0 * * * * root nohup python3 monitor.py&
이유는 nohup, python3 절대경로를 지정해 주지 않았기 때문입니다
종료 스크립트도 매시간 59:55초에 종료하고 00:00시에 다시 실행합니다
다시말해 종료후 5초후에 다시 실행해줘야 정상적으로 작동됩니다
그리고 monitor.py 파일을 실행할때 경로도 신경써야 합니다
monitory.py 안에 경로를 지정했을수도 있기 때문입니다
그래서 cd /home/monitor 디렉토리로 이동한 이후에 진행합니다
아래처럼 크론탭에 추가하면 정상작동합니다
59 * * * * root sleep 55;pkill -9 -ef monitor.py
0 * * * * root cd /home/monitor;/usr/bin/nohup /usr/bin/python3 monitor.py&
추가이후
$ systemctl restart crond
크론탭을 재실행 해주면 설정은 끝이 납니다