Linux mini-howto? Krátce o nástrojích ze života sysadmina.
Monitoring procesů s kill
havel@havel-machine:~$ kill -0
Tajné, pssst!
Nedokumentovaná (man kill) část nástroje kill, kill -0. Zcela dle neočekávání kill -0 nezabije proces, ani ho jinak neovlivní, vrací exitcode 0 pokud proces běží a akceptuje signály a naopak pokud neběží vrací 1.
havel@havel-machine:~$ echo $$ 10231 havel@havel-machine:~$ /bin/bash havel@havel-machine:~$ echo $$ 12023 havel@havel-machine:~$ kill -0 12023 havel@havel-machine:~$ echo $? 0 havel@havel-machine:~$ exit havel@havel-machine:~$ kill -0 12023 kill: kill 12023 failed: no such process havel@havel-machine:~$ echo $? 1
Seznam dostupných signálů, 0 zde není.
K čemu je to dobré? Napadá mě, využití např. jednoduché hlídání procesů (démonů) z /var/run/xyz.pid ( #kill -0 $(cat /var/run/crond.pid) ), určitě existují jiná i lepší řešení (a nevím zda-li parsování ps je ono nebo průchod /proc/<pid>), ale jak už někdo poznamenal, proč, protože můžem.
Užívejte moudře a opatrně, díky za pozornost.
František Havel, MOJEservery.cz