Verificare da quanto tempo un processo è attivo su Linux
La verifica del funzionamento di un dato processo/demone, può essere effettuata in differenti modi, quello più noto è l’utilizzo del comando ps.
E’ un comando molto potente, infatti utilizzando determinate opzioni è possibile elencare i processi attivi sulla macchina, verificare la memoria occupata, il PID di riferimento, ad esempio facendo:
ps aux
otterremo il seguente risultato
root 602 0.0 0.1 26392 1748 ? Ss 18:21 0:00 /usr/lib/systemd/systemd-logind
root 603 0.0 0.3 287652 3332 ? Ssl 18:21 0:00 /usr/sbin/rsyslogd -n
root 609 0.0 0.1 126328 1660 ? Ss 18:21 0:00 /usr/sbin/crond -n
root 622 0.0 0.2 90204 2396 ? Ss 18:21 0:00 login — root
root 634 0.0 0.2 53056 2660 ? Ss 18:21 0:00 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplicant.log -c /etc/
root 635 0.0 1.5 110508 15800 ? S 18:21 0:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/d
polkitd 636 0.0 1.2 522700 12800 ? Ssl 18:21 0:00 /usr/lib/polkit-1/polkitd –no-debug
root 831 0.0 0.3 82544 3580 ? Ss 18:21 0:00 /usr/sbin/sshd -D
root 833 0.0 1.6 553152 16308 ? Ssl 18:21 0:00 /usr/bin/python -Es /usr/sbin/tuned -l -P
mysql 1552 0.0 0.1 113248 1612 ? Ss 18:21 0:00 /bin/sh /usr/bin/mysqld_safe –basedir=/usr
root 2130 0.0 0.2 91128 2076 ? Ss 18:21 0:00 /usr/libexec/postfix/master -w
mysql 2141 0.1 8.7 841452 89196 ? Sl 18:21 0:00 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugi
postfix 2144 0.0 0.3 91232 3940 ? S 18:21 0:00 pickup -l -t unix -u
postfix 2145 0.0 0.3 91300 3968 ? S 18:21 0:00 qmgr -l -t unix -u
root 2207 0.0 0.0 0 0 ? S< 18:25 0:00 [kworker/0:2H]
root 2212 0.0 0.1 115372 2012 tty1 Ss+ 18:28 0:00 -bash
Lo scopo di questo tutorial non è spiegare l’output del comando ps ne dettaglio, ma stimare da quanto tempo un processo è attivo.
Consideriamo il processo del server SSH (sshd), il suo PID è 831, la stima del tempo di attività la otteniamo attraverso il comando:
ps -p 831 -o etime
ELAPSED
11:54
il processo è attivo da 12 minuti circa, se volessimo esprimerlo in secondi
ps -p 831 -o etimes
ELAPSED
878
come detto in precedenza, il comando ps , ha molti opzioni molto utili per investigare sullo stato di un processo, ad esempio se volessimo un report di tutti i processi attivi
ps -eo pid,comm,lstart,etime,time,args
ed avremo il seguente risultato
PID COMMAND STARTED ELAPSED TIME COMMAND
831 sshd Wed Jan 17 18:21:39 2018 15:26 00:00:00 /usr/sbin/sshd -D
833 tuned Wed Jan 17 18:21:39 2018 15:26 00:00:00 /usr/bin/python -Es /usr/sbin/tuned -l -P
1552 mysqld_safe Wed Jan 17 18:21:40 2018 15:25 00:00:00 /bin/sh /usr/bin/mysqld_safe –basedir=/usr
2130 master Wed Jan 17 18:21:41 2018 15:24 00:00:00 /usr/libexec/postfix/master -w
2141 mysqld Wed Jan 17 18:21:41 2018 15:24 00:00:00 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –pl
2144 pickup Wed Jan 17 18:21:41 2018 15:24 00:00:00 pickup -l -t unix -u
2145 qmgr Wed Jan 17 18:21:41 2018 15:24 00:00:00 qmgr -l -t unix -u
2207 kworker/0:2H Wed Jan 17 18:25:00 2018 12:05 00:00:00 [kworker/0:2H]
2212 bash Wed Jan 17 18:28:15 2018 08:50 00:00:00 -bash
2231 sshd Wed Jan 17 18:28:31 2018 08:34 00:00:00 sshd: root@pts/0
2235 bash Wed Jan 17 18:28:40 2018 08:25 00:00:00 -bash
2254 kworker/0:0 Wed Jan 17 18:30:00 2018 07:05 00:00:00 [kworker/0:0]