Sto eseguendo un programma nel terminale a cui non posso sfuggire con Ctrl –C e che voglio uccidere. Come posso trovare il suo PID?
Migliore risposta
Apri un altro terminale ed esegui ps ax | grep foo
dove foo è il nome del programma che non risponde. Questo dovrebbe restituire una riga di output simile a questa:
$ ps ax | grep firefox
2222 ? S 0:00 /bin/sh /usr/lib/firefox-3.6.9/firefox
2231 ? Sl 514:36 /usr/lib/firefox-3.6.9/firefox-bin
30290 pts/2 S+ 0:00 grep --color=auto firefox
Il primo campo di ogni riga di output è un numero che rappresenta l'ID di processo del programma abbinato a grep
(puoi tranquillamente ignorare l'ultimo, che rappresenta grep
stesso.
Per fermare il processo offensivo, fai:kill pid
dove pid è l'ID processo del programma. Potresti dover usare il tuo giudizio su quale delle partite deve essere kill
ed, oppure potresti usare top
invece. Usando kill
da solo invia SIGTERM, che dovresti provare prima in quanto consente al programma di ripulirsi correttamente dopo se stesso. Se SIGTERM fallisce, prova SIGHUP, che è una medicina più forte:kill -HUP pid
. Se tutto il resto fallisce, invia SIGKILL. Ma dovresti farlo solo come ultima risorsa, perché SIGKILL fa sì che il kernel termini immediatamente il processo senza possibilità di pulizia. Questo a volte può causare il danneggiamento dei dati o altri problemi. Quindi, di nuovo, invia SIGKILL solo come ultima risorsa. Per farlo, esegui kill -KILL pid
o kill -9 pid
.
Se stai eseguendo un'interfaccia grafica, ovviamente, non devi scherzare con questa pazza roba da riga di comando per portare a termine il lavoro. Basta aprire "Monitor di sistema", accedere alla scheda Processi, scegliere il processo che si desidera interrompere (Hm, potrebbe essere quello che utilizza il 90% della CPU?) e fare clic con il pulsante destro del mouse. Poiché il processo è già stato interrotto, (questo è il problema, giusto?) scegli Termina processo o Termina processo dal menu risultante.
Credito a koanhead