利用指令行對程序進行删除,windows下利用“taskkill /pid ' + str(pid) + ' /f”;linux下利用“kill + str(pid)”
簡介
在 Python 的項目開發中,程式有時會需要管理(例如停止)其它背景程序。
可以通過 os.getpid() 函數以及 os.system() 來實作這一功能。
示例
在同一個目錄下建立 3 個腳本檔案:
1 要停止的程序
建立腳本檔案 count.py ,内容如下:import time
import os
# 擷取程序的pid
pid = os.getpid()
print('pid: ', pid)
# 将pid寫入本地檔案
f1 = open(file='count_pid.txt', mode='w')
f1.write(pid.__str__())
f1.close()、
# 開始計數并列印
n = 0
while True:
n += 1
print(n)
time.sleep(1)
運作這個腳本,這樣就得到了一個在背景持續運作的程序。
2 用來停止程序的函數
建立腳本檔案 kill.py ,内容如下:import os
def kill(pid):
# 本函數用于中止傳入pid所對應的程序
if os.name == 'nt':
# Windows系統
cmd = 'taskkill /pid ' + str(pid) + ' /f'
try:
os.system(cmd)
print(pid, 'killed')
except Exception as e:
print(e)
elif os.name == 'posix':
# Linux系統
cmd = 'kill ' + str(pid)
try:
os.system(cmd)
print(pid, 'killed')
except Exception as e:
print(e)
else:
print('Undefined os.name')
從其它程式中調用這個腳本中定義的 kill() 函數,即可中止指定程序。
3 控制程式
建立腳本檔案 manager.py ,内容如下:from kill import kill
# 讀取pid
f1 = open(file='count_pid.txt', mode='r')
pid = f1.read()
f1.close()
# 調用kill函數,終止程序
kill(pid=pid)
運作這個腳本,就可以讀取到 count.py 對應程序的 pid ,并通過它中止該程序。