Интеграция "часов" с "верхней" регистрацией до конца - КАК?
Я наткнулся на эту ссылку: "смотреть" вывод команды, пока не наблюдается определенная строка, а затем выйти
Я знаю PID процесса. Я хочу войти в процесс "потребление ресурсов", используя top.
В принципе top -p PID -b >> LOGFILE
,
Я хочу, чтобы этот прогон происходил с шагом, скажем, каждые 5 секунд с помощью команды "смотреть"
watch -n 5
Из независимой / внешней программы я добавлю "Мы закончили" в файл журнала.
Я хочу, чтобы регистрация часов / вершины прервалась / завершилась, когда "Мы закончили". grep
следует оценивать весь файл журнала, а не только текущее значение.
Я хочу, чтобы команда выполнялась в неблокирующем виде... возможно, заканчивается на " &
"
Я установил -d на 5, чтобы top и watch создавались одновременно?...
Вот моя попытка использовать опцию "-e", предложенную по ссылке выше, не работает должным образом... PID и LOGFILE являются подходящими значениями.
watch -n 5 -e "! top -d 5 -b -p PID >> LOGFILE | grep -m 1 \"We Are Finished\"" &
1 ответ
until grep -qm 1 '\"We Are Finished\"' LOGFILE; do top -d 5 -n 12 -b -p PID >> LOGFILE; done
Если вы хотите выйти из процесса входа в систему, когда pid больше не работает, должен работать скрипт ниже? (это позволяет избежать двух процессов записи в один и тот же файл?)
Он принимает три параметра: PID, местоположение LOGFILE и ВРЕМЯ между записями журнала.
#!/bin/bash
if [ $# -lt 3 ]
then
echo "Usage logpid (PID) (LOGFILE) (Time between in sec)"
exit 1;
fi
while :
do
if ps -p $1 > /dev/null ; then
top -n 1 -b -p $1 >> $2;
else
echo "Exited No pid";
break;
fi
sleep $3;
done