Нужно подсчитать количество процессов висящих в системе по их типам: uninterruptible, idle, lock, runnable, sleeping, stopped, interrupt, zombie.
Их можно определить по state в ps.
На shell'е это выглядит буквально следующим образом:
Код: Выделить всё
#!/bin/sh
ps -axo state= | sed -e 's/^\(.\).*/\1/' | awk '{ processes++; stat[$1]++ } END {
print "processes.value " 0+processes;
print "uninterruptible.value " 0+stat["D"];
print "idle.value " 0+stat["I"];
print "lock.value " 0+stat["G"];
print "runnable.value " 0+stat["R"];
print "sleeping.value " 0+stat["S"];
print "stopped.value " 0+stat["T"];
print "interrupt.value " 0+stat["W"];
print "zombie.value " 0+stat["Z"];
}'
