我有一個python腳本通過nohup在後臺運行。
這是一個報警系統。一旦我運行腳本,它會檢查是否檢測到運動。 現在我有如何禁用警報的問題。
你能幫我找到一個很好的方法來發送命令來禁用/終止正在運行的腳本嗎?如何發送命令到python腳本?
快速骯髒的方法是:
檢查txt文件內容:如果我想關閉腳本,我修改了txt。
喜歡的東西:
if txt content is "disable":
quit
我很新的蟒蛇,也許你能幫助我。
我有一個python腳本通過nohup在後臺運行。
這是一個報警系統。一旦我運行腳本,它會檢查是否檢測到運動。 現在我有如何禁用警報的問題。
你能幫我找到一個很好的方法來發送命令來禁用/終止正在運行的腳本嗎?如何發送命令到python腳本?
快速骯髒的方法是:
檢查txt文件內容:如果我想關閉腳本,我修改了txt。
喜歡的東西:
if txt content is "disable":
quit
我很新的蟒蛇,也許你能幫助我。
if os.path.exists(os.path.expanduser("~/disable_alarm.txt")):
#then dont sound alarm
,只是把一個文件在您的家directoy當你想禁用它...
如果您使用的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
謝謝,但我怎麼能自動使用它?我必須每次都查找進程ID。這需要很長時間。 –
@SergioSapiente更新改進的方法 –
你在哪個操作系統上運行腳本? – Davit
我在LINUX上運行它。 Debian Wheezy。 –