until grep -qm 1 '\"We Are Finished\"' LOGFILE; do top -d 5 -n 12 -b -p PID >> LOGFILE; done
Wenn Sie die Protokollierung für einen Prozess beenden möchten, wenn die PID nicht mehr ausgeführt wird, sollte das folgende Skript funktionieren? (Dadurch werden zwei Prozesse vermieden, die in dieselbe Datei schreiben?)
Es werden drei Parameter benötigt: die PID, die Position von LOGFILE und die TIME zwischen Protokolleinträgen.
#!/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