2014-07-12 180 views
0

我有一個python腳本通過nohup在後臺運行。
這是一個報警系統。一旦我運行腳本,它會檢查是否檢測到運動。 現在我有如何禁用警報的問題。
你能幫我找到一個很好的方法來發送命令來禁用/終止正在運行的腳本嗎?如何發送命令到python腳本?

快速骯髒的方法是:
檢查txt文件內容:如果我想關閉腳本,我修改了txt。

喜歡的東西:

if txt content is "disable": 
quit 

我很新的蟒蛇,也許你能幫助我。

+0

你在哪個操作系統上運行腳本? – Davit

+0

我在LINUX上運行它。 Debian Wheezy。 –

回答

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

,只是把一個文件在您的家directoy當你想禁用它...

1

如果您使用的Linux/Unix/MacOS的,你可以殺死在命令行腳本

$ 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 

第二字段是正在運行的進程的PID,與kill命令殺死它:

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

至GR AB自動PID,你可以到你的Python腳本的頂部添加此:

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

現在,你可以搶的bash的PID有一行:

kill -TERM $(cat pid) 

帶位置取代pid文件pid

+0

謝謝,但我怎麼能自動使用它?我必須每次都查找進程ID。這需要很長時間。 –

+0

@SergioSapiente更新改進的方法 –