Come identificare e terminare il processo di sospensione, quando il sistema si blocca e reagisce lentamente all'input dell'utente?


24

Di recente, quando ho provato ad aprire un video con VLC, il mio sistema ha rallentato, il browser web delle applicazioni aperte, VLC e filemanager e altri non hanno più reagito. Il mouse ha appena reagito ancora molto lentamente.

Su una macchina Windows premo un keycombi CTRL-ALT-CANC per aprire il taskmanager, cercare il processo che ha causato il blocco e ucciderlo.

Da quando sono abbastanza nuovo con l'uso di Linux non ho capito le migliori pratiche per risolvere una simile situazione in Ubuntu.

Quale modo rapido ed efficace consiglieresti di identificare il processo di sospensione e chiuderlo, quando il sistema reagisce già molto lentamente all'input dell'utente?

Risposte:


32

Esistono due modi principali per identificare i processi sospesi. Uno è tramite la GUI di System Monitor e l'altro è topnella riga di comando.

System Monitor

Questo può essere trovato in Sistema> Amministrazione

account

Puoi anche creare una scorciatoia da tastiera per questo in questo articolo .

Una volta avviata la GUI, è possibile selezionare la scheda Processi che elencherà tutti i processi in esecuzione. Ordina per colonna della CPU per trovare l'attività più intensiva della CPU

processore

Infine puoi fare clic con il pulsante destro del mouse su quell'attività e scegliere di terminarla, interromperla o ucciderla. Ucciderlo si interromperà immediatamente e rimuoverà quel processo dal sistema.

uccidere

Riga di comando

Se hai un terminale aperto, puoi semplicemente digitare topquesto elencherà tutti i processi in esecuzione simili a quello della scheda Processi nella GUI

superiore

Nella parte superiore è la CPU ordinata per impostazione predefinita, quindi le attività principali più impegnative per la CPU sono in cima. In qualsiasi momento puoi premere la lettera kper terminare un processo

K

Digita semplicemente il PID del processo che desideri terminare e premi Invio. Chiederà l'invio di un segnale Kill. Per terminare correttamente il processo, usa il valore predefinito 15 - per terminarlo immediatamente "Non passare, non raccogliere $ 200", usa 9.

SIGKILL

Il processo verrà quindi terminato.

Se stai riscontrando un'interfaccia lenta, puoi provare a SSH in remoto se è abilitato - o passare a una console virtuale tramite Ctrl+ Alt+ F#Where F#is a Function Key (F3, F4, F5, ecc.). Per tornare all'ambiente desktop, passare a F7 o F8 a seconda della versione di Ubuntu.


5
Bella risposta. Di solito assegno il collegamento CTRL + ESC al monitor di sistema. Questo mi dà un rapido accesso al processo di interruzione.
Javier Rivera,

@Marco Ceppi: dove sono finite le immagini?
enzotib,

@enzotib Il post è stato aggiornato
Marco Ceppi

1
+1 per System Monitor. Potrebbe uccidere / arrestare un processo VLC sospeso, cosa che htop non potrebbe fare.
Malisokan,

@malisokan Sei sicuro di htopnon poterlo fare? Puoi inviare SIGKILL per uccidere qualsiasi processo di sospensione a cui hai diritto.
dice Val Reinstate Monica il

4

Aggiungi l' System Monitorapplet al tuo pannello ( fai clic con il tasto destro sul pannello, seleziona Add to Pannele cerca System Monitor) e fai clic con il tasto destro su di esso per aprire l'applicazione System Monitor.

È possibile avviare l'applicazione System Monitor premendo Alt+F2e avviare il programma gnome-system-monitor.

Vai alla scheda "Processi" e fai clic con il pulsante destro del mouse sull'applicazione che intendi eliminare .


3

La maggior parte ha già detto (mi piace la risposta di Marco Ceppi) ma c'è anche un'applet "Uscita forzata" che puoi aggiungere al tuo pannello GNOME. Fai clic destro sul pannello e scegli "Aggiungi al pannello ...":

testo alternativo

Ciò ti consente di uscire da un'applicazione sospesa semplicemente facendo clic sulla sua finestra. Molto veloce ed efficiente.


Naturalmente quando si esegue Unity in 11.04 questa applicazione non sarà più disponibile. Esiste un progetto sostitutivo Indicator-Forceclose ma non è incluso nei repository.

In alternativa, potremmo correre xkillda un terminale.


Distrugge solo la finestra o uccide anche il processo?
val dice Reinstate Monica il

@val uccide il processo che ha creato la finestra.
Takkat

Appena testato: non lo fa. Ho creato un programma che si blocca all'interno del callback GTK e l'ho ucciso con xkill. La finestra è scomparsa, ma il programma ha continuato a funzionare (o si blocca se si preferisce). Quindi la risposta è no, potrebbe non uccidere il programma se è seriamente bloccato.
dice Val Reinstate Monica il

@val naturalmente dopo che il tuo programma ha chiamato un altro processo per la creazione di una finestra xkillucciderà solo questo processo aggiuntivo. Questo è particolarmente importante da sapere per i programmi che funzionano senza un X-server ma chiamano X per il windowing. Ovviamente, sarebbe impossibile uccidere un tale programma dal server X.
Takkat,

Il mio programma non ha chiamato un altro processo per questo. Ho creato un programma uguale a qualsiasi altra applicazione GTK disponibile e l'ho bloccato. xkillnon influisce su tali processi (GTK provocherà l'uscita se in seguito uscirò "sospeso" e lo farò gestire la perdita di finestra). I callback GTK non hanno nulla a che fare con il multiprocessing.
dice Val Reinstate Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.