我正在嘗試根據進程ID來查找進程是否正在運行。代碼如下,基於論壇上的帖子之一。我不能考慮進程名稱,因爲有多個進程使用相同的名稱運行。檢查一個進程是否正在Python中運行(在Linux/Unix中)
def findProcess(processId):
ps= subprocess.Popen("ps -ef | grep "+processId, shell=True, stdout=subprocess.PIPE)
output = ps.stdout.read()
ps.stdout.close()
ps.wait()
return output
def isProcessRunning(processId):
output = findProcess(processId)
if re.search(processId, output) is None:
return true
else:
return False
輸出:
1111 72312 72311 0 0:00.00 ttys000 0:00.00 /bin/sh -c ps -ef | grep 71676
1111 72314 72312 0 0:00.00 ttys000 0:00.00 grep 71676
它總是返回true,因爲它可以在輸出字符串的進程ID。
有什麼建議嗎?謝謝你的幫助。
@Cody:我沒有看遠遠不夠去看看! –