Jak zabiju procesy v Ubuntu?

130

Jak zabiju všechny procesy spuštěné vlastním účtem bez root?

Mám nějaké točící se smbd procesy, které jsem způsobil z mého počítače se systémem Windows, a tak jsem se dostal do linuxového serveru a chci zabít ty spřádání procesů. Nemám oprávnění restartovat služby nebo restartovat počítač.

    
dané djangofan 17.02.2012 00:49

13 odpovědí

157

Chcete-li zabít všechny procesy, které máte oprávnění zabít, stačí spustit příkaz

kill -15 -1 nebokill -9 -1 v závislosti na požadovaném chování (pro podrobnosti použijteman kill)

Chcete-li zabít určitý proces, řekněme, firefox, stačí spustit

pkill firefox nebokillall firefox v závislosti na chování, které chcete: Co je rozdíl mezi "killall" a "pkill"?

Chcete-li zjistit, jaké procesy běží, použijte příkaz

ps -ef

Chcete-li vyhledat všechny procesy uživatelem bob, může to pomoci

pgrep -l -u bob

nebo

ps -ef | grep bob
    
odpověděl ste_kwr 17.02.2012 00:58
47

Použijtesudo kill <pid> nebosudo killall <process-name>

    
odpověděl Chris Wayne 17.02.2012 00:50
19

Zkusme něco víc:

sudo apt-get install htop 

Příkaztop je tradiční způsob, jak zobrazit využití prostředku systému a zobrazit procesy, které využívají většinu systémových prostředků. V horní části se zobrazuje seznam procesů, které používají nejvíce CPU v horní části.

htop zobrazuje stejné informace pomocí srozumitelnějšího rozvržení. Umožňuje také vybrat klíče se šipkami a pomocí kláves F provádět akce, jako je zabíjení nebo změnu jejich priority.

    
odpověděl Fantomas 12.01.2014 05:41
14

Můžete použít

ps -ax | grep application name 

Pokud hledáte typ firefoxu v terminálu jakops -ax | grep firefox, zobrazí se ID procesu příslušné aplikace. Tuto aplikaci můžete zastavit příkazemkill, pokud proces id = 1317,

kill -9 1317
    
odpověděl Xman Classical 22.07.2014 08:21
12

Použil bychxkill. Zadejtexkill do terminálu a klikněte do okna nebo zadejtexkill a ID procesu a bude ukončeno.

Zjistili jste více oxkill na x.org.

    
odpověděl Alvar 27.12.2013 22:36
7

Chcete-li se pokusit zabít všechny procesy vlastněné uživatelemusername, spusťte:

pkill -U username
    
odpověděl user129146 07.02.2013 03:30
5

Zlomil bych váš problém na 2 části:

1) Jak najdu procesy, které jsem zahájil? Spusťte toto:

ps -u 'whoami'

Kódwhoami je jen v případě, že neznáte jméno účtu, který používáte, jinak zadáte pouze název účtu bez zadních uvozovek.

Zobrazí se seznam všech procesů, které mohou být smazány v účtu.

2) Příkazps uvede procesní číslo, TTY, čas a CMD. ID procesu je první sloupec. Použijte toto číslo k zablokování procesu. Buďte opatrní při zabíjení procesu. Mohl byste něco zlomit, pokud zabijete nesprávný proces. Chcete-li proces zabít, použijete příkazkill, který do procesu odešle SIGNÁL. Signál označuje, jaký proces by měl udělat. Například odeslání procesu-1 procesu požádá jej o opětovné načtení konfiguračního souboru; odeslání-2 je ekvivalentní stisknutí ovládacího prvku C v tomto procesu; -9 způsobí, že jádro opustí proces, aniž by to oznámilo procesu.

Předpokládá se, že ps -uwhoami vrátil něco jako

  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

A vy jste chtěli zabít procesfirefox jeho idem procesu, pak byste:

kill -1 7667

Potom znovu spusťte stejný příkazps a zkontrolujte, zda proces stále běží. Pokud stále běží, proveďte

kill -2 7667

Pracujete až do-9.

Chcete-li zabít všechny procesy spuštěné v účtu, zadejtekill <level> -1. Stejně jako předtím: postupujte až do-9.

Pokud znáte název procesu, můžete jednoduše jít nakillall <processname>, kde to je to, co se pokoušíte zabít. Například:killall fish (ryba, v tomto smyslu je Friendly Interactive Shell).

Dokumentace prokillall naleznete zde: Odkaz

    
odpověděl Alexandre Santos 05.05.2015 01:37
2

... Všechny procesy v systému Linux reagují na signály. Signály představují osový způsob, jak říci, že programy ukončují nebo upravují své chování.

Odesílání signálů procesů pomocí PID

Nejčastějším způsobem přenosu signálů do programu je příkaz kill.

Jak můžete očekávat, výchozí funkce tohoto nástroje je pokoušet se zabít proces:

kill PID_of_target_process

Tím se odešle signál TERM do procesu. Signál TERM říká, že proces ukončete. To umožňuje programu provádět čistící operace a hladce ukončit.

Pokud se program chová špatně a neudělí při zadání signálu TERM, můžeme tento signál stupňovat předáním signálu KILL:

kill -KILL PID_of_target_process

Toto je speciální signál, který není odeslán do programu.

Místo toho je dáno jádru operačního systému, které vypíná proces. Používá se k vynechání programů, které ignorují signály, které jim byly odeslány ...

    
odpověděl jackal404258 03.05.2015 02:00
2

Napsal jsem malý skript, který jsem napsal zabít (v mém případě) Skype:

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

Ale zjistil jsem, že tolik, jak to fungovalo, to nefungovalo na další den, protože pid byl jinou délku a tam, že množství prostorů bylo jiné

Pak jsem narazil na tuto stránku a vyzkoušel

pgrep -l -u justin

, který pohodlně vytváří procesy ve formátu

[pid] [name]

Proto jsem si do skriptu upravil svůj kód:

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

Co to dělá, je potrubí všech procesů spuštěnojustin (které lze změnit na libovolné uživatelské jméno) nagrep, který hledáskype (to může být změněno na váš proces) line tocut, který pak přečte pouze PID a nakonec použije tento PID v příkazukill k jeho zabití.

    
odpověděl justingiffard 27.12.2013 22:10
2

Pomocí této aplikace můžete zobrazit seznamy programů

nainstalujte htop

sudo apt-get install htop

pro zobrazení procesu a zabíjení procesu Můžete jej nainstalovat a jednoduše odstranit

    
odpověděl Reza Bojnordi 27.05.2017 14:21
0

Použil jsem následující postup k zablokování procesu v Ubuntu ::

Krok 1: Získejte pid procesu pomocí grep nebo můžete použít -C také ::

ps aux | -C 'filename'

nebo

ps -ef | -C 'filename'

nebo

ps aux | grep 'filename'

nebo

ps -ef | grep 'filename' 

Krok 2: Poznamenejte si číslo pid.

Krok 3: Pomocí příkazu kill zadejte číslo pid jako:

kill pidnumber
    
odpověděl harrypotter0 27.05.2017 13:46
0

Ctrl + Alt + Delete lze nastavit tak, aby vám umožnil přístup k správci úloh, odkud je snadné zabít procesy s několika kliknutími a pro mě méně požadavků na zapamatování příkazů, které by mohly být škodlivé, / p>

Odkaz

    
odpověděl Cedric Eveleigh 27.05.2017 13:52
0

Zde je jednoduchý skript pythonu, který jsem napsal, killProcess.py, který přijme něco jako vstup a zabije to.

Napsal jsem tento skript, protože mám spoustu pythonových nebo uzlových procesů, které chci zabít individuálně a programově. Nemohu použít "killall python", protože zastaví procesy, které potřebuji, aby mohly pokračovat.

Zadejte název souboru "killProcess.py" a přidejte název skriptu, který chcete zastavit. Například: python killProcess.py runnablePoller.py zabije soubor 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));
    
odpověděl nick carraway 18.06.2017 21:39