Controllo processi Linux

Un processo è un programma in esecuzione.
Ogni processo sul sistema ha un ID di processo (PID) numerico. Per avere un elenco dei processi si usa il comando ps.

ps
colosso:~# ps<br /> PID TTY TIME CMD<br /> 3857 pts/1 00:00:00 bash<br /> 3863 pts/1 00:00:00 ps<br /> colosso:~#

  • PID ID del processo
  • TTY la periferica di terminale in cui il processo è in esecuzione
  • STAT Stato del processo, ciò che il processo sta facendo e dove risiede la sua memoria.
  • TIME La quantità di tempo della CPU (minuti e secondi) che il processo ha utilizzato fino a quel momento.
  • COMMAND

**
ps ax **
Tutti i processi, non solo quelli in esecuzione.
<br /> colosso:~# ps ax<br /> PID TTY STAT TIME COMMAND<br /> 1 ? Ss 0:02 init [2]<br /> 2 ? S 0:00 [migration/0]<br /> 3 ? SN 0:00 [ksoftirqd/0]<br /> 4 ? S< 0:00 [events/0]<br /> 5 ? S< 0:00 [khelper]<br /> 6 ? S< 0:00 [kthread]<br /> 9 ? S< 0:00 [kblockd/0]<br /> ....<br /> 3838 ? Ss 0:00 /usr/sbin/sshd<br /> 3853 ? Ss 0:00 sshd: root@pts/1<br /> 3857 pts/1 Ss 0:00 -bash<br /> 3987 pts/1 R+ 0:00 ps ax

**
ps u**
ci da le caratteristice dei processi

colosso:~# ps u<br /> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND<br /> root 3064 0.1 2.3 18384 11904 tty7 Ss+ 08:54 0:06 /usr/bin/X :0 -dpi 96 -audit<br /> root 3208 0.0 0.0 1576 496 tty1 Ss+ 08:54 0:00 /sbin/getty 38400 tty1<br /> root 3209 0.0 0.0 1576 496 tty2 Ss+ 08:54 0:00 /sbin/getty 38400 tty2<br /> root 3210 0.0 0.0 1576 496 tty3 Ss+ 08:54 0:00 /sbin/getty 38400 tty3<br /> root 3211 0.0 0.0 1576 496 tty4 Ss+ 08:54 0:00 /sbin/getty 38400 tty4<br /> root 3212 0.0 0.0 1572 492 tty5 Ss+ 08:54 0:00 /sbin/getty 38400 tty5<br /> root 3213 0.0 0.0 1576 496 tty6 Ss+ 08:54 0:00 /sbin/getty 38400 tty6<br /> root 3696 0.0 0.2 3716 1080 pts/0 S 10:08 0:00 su<br /> root 3697 0.0 0.3 3960 1656 pts/0 S+ 10:08 0:00 bash<br /> root 3857 0.0 0.3 3952 1652 pts/1 Ss 10:10 0:00 -bash<br /> root 4060 0.0 0.1 3424 980 pts/1 R+ 10:19 0:00 ps u<br /> colosso:~#<br />
se li combiniamo:
colosso:~# ps aux<br /> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND<br /> root 1 0.0 0.1 1940 644 ? Ss 08:53 0:02 init [2]<br /> root 2 0.0 0.0 0 0 ? S 08:53 0:00 [migration/0]<br /> root 3 0.0 0.0 0 0 ? SN 08:53 0:00 [ksoftirqd/0]<br /> root 4 0.0 0.0 0 0 ? S< 08:53 0:00 [events/0]<br /> root 5 0.0 0.0 0 0 ? S< 08:53 0:00 [khelper]<br /> root 6 0.0 0.0 0 0 ? S< 08:53 0:00 [kthread]<br /> root 9 0.0 0.0 0 0 ? S< 08:53 0:00 [kblockd/0]<br /> ...<br /> bonzo 3672 0.0 0.1 2480 780 ? S 10:08 0:00 gnome-pty-helper<br /> bonzo 3673 0.0 0.6 5680 3204 pts/0 Ss 10:08 0:00 bash<br /> root 3696 0.0 0.2 3716 1080 pts/0 S 10:08 0:00 su<br /> root 3697 0.0 0.3 3960 1656 pts/0 S+ 10:08 0:00 bash<br /> root 3838 0.0 0.2 4924 1088 ? Ss 10:09 0:00 /usr/sbin/sshd<br /> root 3853 0.0 0.4 7716 2340 ? Rs 10:10 0:00 sshd: root@pts/1<br /> root 3857 0.0 0.3 3952 1652 pts/1 Ss 10:10 0:00 -bash<br /> root 4077 0.0 0.1 3424 980 pts/1 R+ 10:20 0:00 ps aux<br />

Il risultato dell’istruzione può essere particolarmente lungo, in questo caso potremo utilizzare un ulteriore argomento,
|more, per impaginare l’output prodotto:
ps ax | less

E’ inoltre possibile sapere se un determinato processo è in esecuzione grazie all’utilizzo incrociato di ps e grep:**
ps ax | grep bash**

colosso:~# ps ax | grep bash<br /> 3673 pts/0 Ss 0:00 bash<br /> 3697 pts/0 S+ 0:00 bash<br /> 3857 pts/1 Ss 0:00 -bash<br /> 4123 pts/1 S+ 0:00 grep bash<br /> colosso:~#<br />
ps produce un’immagine statica dei processi in corso, in pratica fotografa lo stato del sistema al momento in cui viene lanciata l’istruzione di monitoraggio delle esecuzioni.
**
top**
Se si desidera ottenere un output più particolareggiato, dinamico e aggiornabile sarà necessario utilizzare il comando top; l’output di top consente di visualizzare tutti processi correnti e le relative informazioni rilevanti come per esempio il carico sulla CPU.
Il programma top visualizza lo stato corrente del sistema e molti campi che potreste vedere in un listato ps, ma aggiorna anche la visualizzazione ogni secondo.
`
colosso:~# top
top - 10:26:43 up 1:33, 3 users, load average: 0.00, 0.00, 0.01
Tasks: 128 total, 1 running, 127 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.0%us, 0.7%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 516876k total, 496928k used, 19948k free, 80100k buffers
Swap: 498004k total, 0k used, 498004k free, 202788k cached</p>

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3632 bonzo 16 0 38200 7904 6464 S 1.0 1.5 0:05.25 gnome-cups-icon --sm-client-id default3
4196 root 15 0 2224 1168 860 R 1.0 0.2 0:00.50 top
1 root 15 0 1940 644 552 S 0.0 0.1 0:02.27 init [2]
2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0]
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 [ksoftirqd/0]
4 root 10 -5 0 0 0 S 0.0 0.0 0:00.06 [events/0]
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 [khelper]
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 [kthread]
9 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 [kblockd/0]
10 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 [kacpid]
...
2461 root 15 0 1580 380 308 S 0.0 0.1 0:00.00 /sbin/klogd -x
2497 root 24 0 4884 916 672 S 0.0 0.2 0:00.00 /usr/sbin/hpiod
2500 hplip 15 0 9688 4876 1108 S 0.0 0.9 0:00.05 python /usr/sbin/hpssd
` Per usare bene top abbiamo una serie di utili opzioni che si usano premendo sulla voce corrispondente nella tastiera: * k: ferma un processo. * n: mostra il numero dei processi visualizzati sulla base di una cifra specificata dall'utente. * u: ordina l'output per utente. * P: ordina per quantità di CPU utilizzata. * M: ordina per quantità di memoria impiegata. * Barra spaziatrice: aggiorna l'output. Buon controllo a tutti Gabba Gabba Hey Bonzo