Страницы

Поиск по вопросам

понедельник, 13 апреля 2020 г.

Как определить, жив ли процесс? Python 2.6, unix

#python #unix #процесс

                    
Вопрос тут появляется в похожем виде не впервые. Столкнулся со следующей проблемой:
нужно проверять не только существование процесса, но и то, что он не является зомби.
try:
    os.kill(pid, 0)
    return True
except OSError:
    return False

Вариант выше знаю, он не прокатывает с последним условием. Ставить внешние программы/модули
нельзя, все это происходит на разных машинах под линуксом и BSD, рутового доступа на
которые нету. Есть какие-нибудь варианты, как решить проблему?    


Ответы

Ответ 1



Можно чисто средствами баша ps aux | awk ' { print $2" "$8 } ' | grep -q "$pid Z" где $pid это pid вашего процесса. В случае если процесс зомби, то результат этой команды будет равен нулю, т.е. полное совпадение.

Комментариев нет:

Отправить комментарий