2014-07-12 2 views
0

저는 nohup을 통해 백그라운드에서 실행되는 python 스크립트를 가지고 있습니다.
알람 시스템입니다. 스크립트를 실행하면 동작이 감지되는지 확인합니다. 이제 알람을 비활성화하는 방법에 대한 문제가 있습니다.
실행중인 스크립트를 비활성화/종료하라는 명령을 보낼 수있는 좋은 방법을 찾으십시오.python 스크립트에 명령을 보내는 방법은 무엇입니까?

빠르고 더러운 방법 :
txt 파일 내용 확인 : 스크립트를 종료하려면 txt를 수정하십시오. 같은

뭔가 :

if txt content is "disable": 
quit 

내가 파이썬 꽤 새로운 오전 어쩌면 당신이 나를 도울 수있다.

+0

어떤 OS에서 스크립트를 실행하고 있습니까? – Davit

+0

나는 그것을 리눅스에서 돌린다. 데비안 Wheezy. –

답변

0
if os.path.exists(os.path.expanduser("~/disable_alarm.txt")): 
    #then dont sound alarm 

그냥 당신이 비활성화 할 때 홈 directoy에서 파일을 넣어 ...

1

당신이 리눅스/유닉스/맥 OS를 사용하는 경우, 명령 줄에서 스크립트를 죽일 수

$ kill 16210 
$ ps aux | grep python 
nate  16220 0.0 0.0 8044 932 pts/1 S+ 17:02 0:00 grep python 

하는 GR하려면 :

$ ps aux | grep python 
nate  16210 0.2 0.0 20156 5176 pts/2 S+ 17:02 0:00 python3 
nate  16215 0.0 0.0 8044 932 pts/1 S+ 17:02 0:00 grep python 

두 번째 필드는 kill 명령으로 죽이고, 실행중인 프로세스의 PID입니다

kill -TERM $(cat pid) 

의 위치에 pid 교체 : 당신의 bash의 PID 한 라인이 있음을 잡을 수 있습니다, 지금

import os 
pid = os.getpid() 
with open('pid', 'w') as procfile: 
    procfile.write(pid) 

: AB는 자동으로 PID, 당신은 파이썬 스크립트의 상단에이를 추가 할 수 있습니다 파일 pid

+0

감사합니다.하지만 어떻게 자동으로 사용할 수 있습니까? 매번 프로세스 ID를 찾아야합니다. 너무 오래 걸립니다. –

+0

@SergioSapiente가 향상된 방법으로 업데이트되었습니다. –

관련 문제