Я хочу видеть, работает ли некоторый процесс Python. Я настроил сценарий Python, который обновляет noip, и крон выполняет его каждая 1 минута, но требуется только 2 секунды, чтобы работать и закончиться, таким образом, я хотел бы знать, существует ли способ сделать PS-e | grep Python и ожидать, пока некоторый процесс Python не появляется на экране
Если Ваша цель состоит в том, чтобы просто наблюдать, процесс, появляется, можно просто сделать это:
watch -n1 "ps -ef | grep command | grep -v grep"
Лично, я часто использую метод опроса с pgrep
и while
цикл как так:
while ! pgrep -f command ; do true; done && echo "Process started"
Это - хороший подход, если Вы хотите выполнить дополнительную команду, если процесс появляется или исчезает.
Тестовый прогон:
способ, которым это работает, очень прост:
pgrep -f command
на каждом повторении и инвертирует его статус выхода. Таким образом, если процесс, не найденный статусом выхода 1
, инвертирует к 0
, таким образом поддерживая цикл в рабочем состоянии. 0
, он отрицается к 1
, вызывая для цикла для завершения, и отобразить сообщение с echo
Это - довольно универсальный подход, работы с любой оболочкой и языком сценариев. Например, я использовал его в сценарий Python, который обнаруживает изменение IP и сценарий к командам выполнения, когда процесс появляется