Мне нужно сделать функцию, которая может убить все процессы, принадлежащие пользователю, а затем запустить несколько.
Моя основная проблема заключается в том, что я не могу понять, как проверить, все ли процессы были уничтожены, и если все еще запущенные процессы, повторить попытку 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:
Спасибо