我需要創建一個函數,可以終止用戶擁有的所有進程並稍後啓動幾個進程。Python終止用戶擁有的所有進程
我的主要問題是我無法確定如何檢查是否所有進程都被終止,如果仍有正在運行的進程,要重試1-2次以殺死它們,然後返回錯誤。我只想使用python代碼。
這裏是我的代碼:
import os
import pwd
def pkill(user):
pids = []
user_pids = []
uid = pwd.getpwnam(user).pw_uid
# get all PID
for i in os.listdir('/proc'):
if i.isdigit():
pids.append(i)
# test if PID is owned by user
for i in pids:
puid = os.stat(os.path.join('/proc', i)).st_uid
if puid == uid:
user_pids.append(i)
# print len(user_pids)
# check of PID still exist and kill it
for i in user_pids:
if os.path.exists(os.path.join('/proc',i)):
try:
os.kill(int(i), 15)
except OSError:
謝謝
您可能想要檢查`slay`的執行情況,[Source](http://hg.svartech.com/debian/slay/raw-file/tip/slay) – plundra 2011-01-13 11:27:23