заданное время, сначала отправить сигтерм, если не прибьётся сам, помочь ему килом. Так сойдёт?
def pid_is_running(pid):
try:
os.kill(pid, 0)
except OSError as err:
if err.errno == errno.ESRCH:
return False
return True
def interrupt_pid(pid, timeout):
os.kill(pid, signal.SIGTERM)
start_time = time.time()
while time.time() - start_time < timeout:
if not pid_is_running(pid):
return
time.sleep(1)
os.kill(pid, signal.SIGKILL)
А что за процесс?
кастомный, от текущего юзера
А то есть ты его не из своего же скрипта запустил?
собственно да, из своего. есть пайпы и ещё десяток способов IPC, но я бы хотел как проще, чтобы по минимуму переделывать. Код такой, что любые правки чреваты отсрелом всех яиц. Типа есть пид, его надо прибить, остальное "работает, не трогай"
Обсуждают сегодня