Uzyskanie informacji o czasie pracy usługi ma czasem spore znaczenie. Wyświetlenie listy procesów za pomocą ps aux zwraca w zasadzie potrzebne informacje. Jest tu jednak jeden mały problem – jeżeli zadanie zostało uruchomione w dniu innym niż dzisiejszy mamy tylko informacje o dniu lub roku uruchomienia procesu:
[hubi@f16hubi ~]$ ps aux |grep init root 1 0.0 0.3 60916 26164 ? Ss Jan13 0:08 /sbin/init [hubi@f16hubi ~]$ date pon, 16 sty 2012, 16:19:19 CET
Rozwiązania są (przynajmniej
) dwa.
- Pierwsze:
[hubi@f16hubi ~]$ ps axo pid,cmd,etime|grep init 1 /sbin/init 3-05:29:24
Kolumna etime wyświetla czas pracy programu. Robi to w formacie dd-gg:mm:ss. Tak więc pozwala na uzyskanie informacji jak dawno temu proces został uruchomiony.
- Drugie:
ls -dl /proc/$(pgrep -f init) dr-xr-xr-x. 8 root root 0 01-13 11:52 /proc/1
Na podstawie daty utworzenie katalogu procesu w procfs jesteśmy w stanie określić moment uruchomienia danego procesu.
