python как убить процесс на linux
использую следующий код
p = subprocess.Popen(['node', 'index.js'])
while(True):
time.sleep(10)
if psutil.pid_exists(p.pid) == False:
p = subprocess.Popen(['node', 'index.js'])
time.sleep(5)
else:
p.kill()
Как вы можете видеть он запускает node скрипт и если процесс умирает он поднимает его заново.
На windows данный скрипт работает отлично, но на Linux наблюдаются проблемы: psutil.pid_exists(p.pid) всегда выводит true, он либо не может убить процесс, либо не правильно определяет.
В чем проблема, как написать данный скрипт под linux ?
Ответы (1 шт):
Автор решения: Андрей Птицев
→ Ссылка
Проверять процесс через p.poll()
poll = p.poll()
if poll == None:
# p.subprocess is alive