
Wir haben eine sehr sensible Anwendung, die in großem Umfang auf Crontab zurückgreift, und wir würden gerne verfolgen, wie viele von Crontab gestartete Prozesse noch ausgeführt werden.
Kurz gesagt, wir haben ein Limit von 300 Cron-Jobs in „Queuedefs“ und wir möchten sicherstellen, dass wir dieses Limit nicht erreichen.
Mit freundlichen Grüßen, Dumb Admin
Antwort1
Dadurch erhalten Sie eine Liste der Prozesse, deren übergeordneter Prozess crond ist:
ps h --ppid $(pgrep crond)
Antwort2
Es sieht so aus, als ob die PID crond
bei jedem Aufruf unterschiedlich ist. Wie wäre es also damit?
for pid in $(ps -ef | grep -i crond | awk '{print $2}') ; do
ps -ef | grep -vi crond | awk -v ppid=${pid} '{if ($3 == ppid) print $0}'
done | wc -l
Dadurch wird die Anzahl aller Prozesse ausgedruckt, die von einem Prozess namens gestartet wurden crond
.