Вопрос тут появляется в похожем виде не впервые. Столкнулся со следующей проблемой: нужно проверять не только существование процесса, но и то, что он не является зомби. try: os.kill(pid, 0) return True except OSError: return False Вариант выше знаю, он не прокатывает с последним условием. Ставить внешние программы/модули нельзя, все это происходит на разных машинах под линуксом и BSD, рутового доступа на которые нету. Есть какие-нибудь варианты, как решить проблему?
Ответ
Можно чисто средствами баша ps aux | awk ' { print $2" "$8 } ' | grep -q "$pid Z" где $pid это pid вашего процесса. В случае если процесс зомби, то результат этой команды будет равен нулю, т.е. полное совпадение.
Комментариев нет:
Отправить комментарий