Sobes.tech
Middle+

Come uccidere un processo in Linux? Cosa fare se kill pid non funziona?

sobes.tech AI

Risposta dell'AI

In Linux, un processo può essere ucciso usando il comando kill specificando il PID (identificatore del processo):

kill <pid>

Per impostazione predefinita, viene inviato il segnale SIGTERM (15), che termina correttamente il processo.

Se il processo non risponde a SIGTERM, è possibile inviare un segnale più forte, SIGKILL (9), che termina forzatamente il processo:

kill -9 <pid>

Se anche kill -9 non funziona, il processo potrebbe trovarsi in stato "D" (sonno ininterrotto), ad esempio in attesa di input/output o bloccato a livello kernel. In questo caso, il processo non può essere ucciso finché la chiamata di sistema non termina o la risorsa non viene liberata.

Per la diagnosi, si possono usare:

  • ps aux | grep <pid> — per vedere lo stato del processo (colonna STAT)
  • top o htop — per monitorare i processi
  • strace -p <pid> — per tracciare le chiamate di sistema del processo

Se il processo si blocca a causa di problemi hardware o del filesystem, bisogna risolvere il problema a questo livello.