Come si eliminano i processi in Ubuntu?

129

Come faccio a uccidere tutti i processi in esecuzione dal mio account non root?

Ho alcuni processi di smbd in rotazione che ho causato dalla mia macchina Windows e quindi ho telnetizzato nel server linux e voglio uccidere quei processi di rotazione. Non ho l'autorizzazione per riavviare i servizi o riavviare il computer.

    
posta djangofan 17.02.2012 - 00:49

13 risposte

156

Per uccidere tutti i processi che hai il permesso di uccidere, esegui semplicemente il comando

kill -15 -1 o kill -9 -1 a seconda del comportamento desiderato (usa man kill per i dettagli)

Per uccidere un processo specifico, ad esempio, firefox, esegui semplicemente

pkill firefox o killall firefox a seconda del comportamento desiderato: Che cos'è la differenza tra "killall" e "pkill"?

Se vuoi vedere quali processi sono in esecuzione usa il comando

ps -ef

Se vuoi cercare tutti i processi per utente bob, questo potrebbe aiutare

pgrep -l -u bob

o

ps -ef | grep bob
    
risposta data ste_kwr 17.02.2012 - 00:58
46

Utilizza sudo kill <pid> o sudo killall <process-name>

    
risposta data Chris Wayne 17.02.2012 - 00:50
19

Proviamo qualcosa di più:

sudo apt-get install htop 

Il comando top è il modo tradizionale per visualizzare l'utilizzo delle risorse del sistema e visualizzare i processi che occupano la maggior parte delle risorse di sistema. Top mostra un elenco di processi, con quelli che utilizzano la CPU più in alto.

htop visualizza le stesse informazioni con un layout più facile da capire. Permette anche di selezionare i processi con i tasti freccia ed eseguire azioni, come ucciderli o modificarne la priorità, con i tasti F .

    
risposta data Fantomas 12.01.2014 - 05:41
14

Puoi usare

ps -ax | grep application name 

Se la tua ricerca di tipo firefox in un terminale come ps -ax | grep firefox , mostra l'id di processo della corrispondente applicazione. È possibile interrompere l'applicazione in base al comando kill se ID processo = 1317,

kill -9 1317
    
risposta data Xman Classical 22.07.2014 - 08:21
12

Vorrei usare xkill . Inserisci xkill in un terminale e fai clic nella finestra, oppure inserisci xkill e l'ID del processo e verrà terminato.

Scopri di più su xkill su x.org.

    
risposta data Alvar 27.12.2013 - 22:36
7

Per provare ad uccidere tutti i processi di proprietà di un utente username , esegui:

pkill -U username
    
risposta data user129146 07.02.2013 - 03:30
5

Romperei il tuo problema in 2 parti:

1) Come faccio a trovare i processi avviati da me? Esegui questo:

ps -u 'whoami'

Il whoami è nel caso in cui non si conosca il nome dell'account che si sta utilizzando, altrimenti basta digitare il nome dell'account senza le virgolette posteriori.

Questo elencherà tutti i processi che possono essere cancellati dal tuo account.

2) Il comando ps elencherà il numero del processo, TTY, Time e CMD. L'ID del processo è la prima colonna. Usa quel numero per uccidere il processo. Fai attenzione mentre uccidi il processo. Potresti rompere qualcosa se uccidi il processo sbagliato. Per uccidere un processo verrà utilizzato il comando kill , che invia un SEGNALE al processo. Il segnale indica ciò che il processo dovrebbe fare. Ad esempio, inviando un -1 al processo, gli verrà chiesto di ricaricare il file di configurazione; mandare un -2 equivale a premere Control + C su quel processo; -9 farà sì che il kernel abbandoni il processo, senza comunicarlo al processo.

Supponendo che ps -u whoami abbia restituito qualcosa come

  PID TTY          TIME CMD
 4333 pts/1    00:00:00 fish
 4335 ?        00:00:00 fishd
 4816 ?        00:00:00 intellij
 4868 ?        00:50:42 java
 4939 ?        00:00:19 fsnotifier64
 7667 ?        02:49:08 firefox
 7698 ?        00:00:00 unity-webapps-s

E volevi uccidere il processo firefox con il suo id processo, quindi dovresti fare:

kill -1 7667

Quindi avresti rieseguito lo stesso comando ps e controlla se il processo era ancora in esecuzione. Se è ancora in esecuzione, fai un

kill -2 7667

fino a -9 .

Per uccidere tutti i processi avviati dal tuo account, inserisci kill <level> -1 . Come prima: vai a -9 .

Se conosci il nome del processo, puoi semplicemente andare a killall <processname> , dove è ciò che stai cercando di uccidere. Ad esempio: killall fish (il pesce, in questo senso, è il Friendly Interactive SHell).

La documentazione per killall può essere trovata qui: link

    
risposta data Alexandre Santos 05.05.2015 - 01:37
2

... Tutti i processi in Linux rispondono ai segnali. I segnali sono un modo os-level di dire ai programmi di terminare o modificare il loro comportamento.

Come inviare segnali di processo tramite PID

Il modo più comune per trasmettere segnali a un programma è con il comando kill.

Come ci si potrebbe aspettare, la funzionalità predefinita di questa utilità è tentare di uccidere un processo:

kill PID_of_target_process

Questo invia il segnale TERM al processo. Il segnale TERM indica al processo di terminare per favore. Ciò consente al programma di eseguire operazioni di pulizia e di uscire senza problemi.

Se il programma non funziona correttamente e non esce quando viene dato il segnale TERM, possiamo aumentare il segnale passando il segnale KILL:

kill -KILL PID_of_target_process

Questo è un segnale speciale che non viene inviato al programma.

Al contrario, è dato al kernel del sistema operativo, che arresta il processo. Questo è usato per ignorare i programmi che ignorano i segnali inviati a loro ...

    
risposta data jackal404258 03.05.2015 - 02:00
2

Ho scritto un piccolo script che ho scritto per uccidere (nel mio caso) Skype:

kill -s 9 'ps aux | grep skype | head -n 1 | cut -f4 -d" "'

Ma ho scoperto che tanto quanto funzionava allora, non funzionava il giorno dopo perché il pid era di una lunghezza diversa e lì per la quantità di spazi era diverso

Poi mi sono imbattuto in questo sito e ho provato

pgrep -l -u justin

che emette comodamente i processi nel formato

[pid] [name]

Quindi ho adattato il mio codice nello script a questo:

kill -s 9 'pgrep -l -u justin | grep skype | cut -f1 -d" "'

Ciò che fa sono i pipe di tutti i processi justin in esecuzione (che può essere modificato con qualsiasi nome utente) in grep che cerca skype (questo può essere cambiato nel tuo processo) e poi pipe che linea a cut che poi legge solo il PID e infine usa quel PID nel comando kill per ucciderlo.

    
risposta data justingiffard 27.12.2013 - 22:10
2

Con questa applicazione è possibile visualizzare gli elenchi dei programmi

installa htop

sudo apt-get install htop

per vedere processo e processo di uccisione Puoi installarlo e semplicemente eliminare

    
risposta data Reza Bojnordi 27.05.2017 - 14:21
0

Ho usato la seguente procedura per uccidere un processo in Ubuntu ::

Passaggio 1: Ottieni il pid del processo usando grep o puoi usare -C anche ::

ps aux | -C 'filename'

o

ps -ef | -C 'filename'

o

ps aux | grep 'filename'

o

ps -ef | grep 'filename' 

Passaggio 2: annotare il numero pid.

Passaggio 3: usa il comando 'kill' insieme al numero pid come:

kill pidnumber
    
risposta data harrypotter0 27.05.2017 - 13:46
0

Ctrl + Alt + Delete può essere impostato per accedere al task manager, da cui è facile uccidere i processi con un paio di clic, e per me, meno requisiti per ricordare i comandi che potrebbero essere dannosi se fatti male:

link

    
risposta data Cedric Eveleigh 27.05.2017 - 13:52
0

Ecco un semplice script python che ho scritto, killProcess.py, che accetta qualsiasi cosa come input e lo uccide.

Ho scritto questo script perché ho un sacco di processi python o node che voglio uccidere individualmente e programmaticamente. Non posso usare "killall python" perché fermerà i processi di cui ho bisogno per continuare a funzionare.

Nome del file "killProcess.py", quindi aggiungi il nome dello script che desideri interrompere. E.g .: python killProcess.py runnablePoller.py ucciderà il file runnablePoller.py

import os;
import sys;
for arg in sys.argv:
    if(arg!="killProcess.py"):
        process=arg;
        print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
    try:
        pid=int(p);
        print(pid); 
        break;
    except:
        continue;

os.system("kill "+str(pid));
    
risposta data nick carraway 18.06.2017 - 21:39

Leggi altre domande sui tag