Hogyan tudom megölni az Ubuntu folyamatait?

130

Hogyan ölhetem meg a saját nem root fiókommal futó összes folyamatot?

Van néhány forgó smbd folyamata, amit az ablakgépemről készítettem, és ezért linuxos kiszolgálóra telepítettem, és meg akarom ölni azokat a forgófolyamatokat. Nincs jogosultsága újraindítani a szolgáltatásokat vagy újraindítani a gépet.

    
készlet djangofan 17.02.2012 00:49
forrás

13 válasz

157

Az összes olyan művelet megölése, amelyhez engedélyed van, hogy elpusztuljon, egyszerűen futtassa a

parancsot

kill -15 -1 vagykill -9 -1 a kívánt viselkedéstől függően (a részletekért lásdman kill)

Ahhoz, hogy megöli egy adott folyamatot, mondjuk firefox, egyszerűen futtasd

pkill firefox vagykillall firefox a viselkedéstől függően: Mi a a "killall" és a "pkill" közötti különbség?

Ha szeretné megnézni, hogy milyen folyamatok futnak, használja a

parancsot
ps -ef

Ha az összes folyamatot fel szeretné keresni a felhasználói bob használatával, akkor ez segíthet

pgrep -l -u bob

vagy

ps -ef | grep bob
    
válasz adott ste_kwr 17.02.2012 00:58
forrás
47

Asudo kill <pid> vagysudo killall <process-name>

használatával     
válasz adott Chris Wayne 17.02.2012 00:50
forrás
19

Próbáljunk valami mást:

sudo apt-get install htop 

Atop parancs hagyományos módon tekintheti meg a rendszer erőforrás-felhasználását, és megtekintheti azokat a folyamatokat, amelyek a legtöbb rendszer erőforrását veszi igénybe. A tetején megjelenik a folyamatok listája, amelyek közül a legmagasabb CPU-t használják.

htop ugyanazokat az információkat jeleníti meg egy könnyebben érthető elrendezéssel. Ezenkívül a F billentyűkkel is kiválaszthatja a folyamatokat a nyílgombokkal, és végrehajthatja a műveleteket, például megöli őket vagy megváltoztatja prioritásaikat.     

válasz adott Fantomas 12.01.2014 05:41
forrás
14

Használhatja

ps -ax | grep application name 

Ha a tűzfájl keresése a terminálon, mintps -ax | grep firefox, megjeleníti a megfelelő alkalmazás folyamatazonosítóját. Az alkalmazástkill paranccsal leállíthatja, ha a folyamat id = 1317,

kill -9 1317
    
válasz adott Xman Classical 22.07.2014 08:21
forrás
12

Axkill -ot használnám. Írja be axkill parancsot egy terminálba, és kattintson az ablakra, vagy írja be axkill -ot és a folyamatazonosítót, és leáll.

További információ axkill -ról a x.org. / a>

    
válasz adott Alvar 27.12.2013 22:36
forrás
7

Ahhoz, hogy megpróbálja megölni minden olyan folyamatot, amelyet a felhasználóusername tulajdonít, futtassa:

pkill -U username
    
válasz adott user129146 07.02.2013 03:30
forrás
5

Törölném a problémát 2 részre:

1) Hogyan találom meg az általam indított folyamatokat? Futtasd ezt:

ps -u 'whoami'

Awhoami abban az esetben van, ha nem ismeri a használt fiók nevét, különben írja be a fiók nevét a visszaírt idézőjelek nélkül.

Ez felsorolja azokat a folyamatokat, amelyeket a fiókod törölhet.

2) Aps parancs felsorolja a folyamatszámot, a TTY-t, az időt és a CMD-t. A folyamatazonosító az első oszlop. Használd ezt a számot a folyamat megöléséhez. Legyen óvatos, miközben megöli a folyamatot. Elszakadhat valamit, ha megöli a rossz eljárást. A folyamat megöli akill parancsot, amely SIGNAL-ot küld a folyamatba. A jel azt jelzi, hogy mi a folyamat . Például egy-1 elküldése a folyamathoz megkéri, hogy töltse be újra a konfigurációs fájlt; a-2 elküldése megegyezik azzal, hogy megnyomja a Control + C-t; -9 a rendszermag elhagyja a folyamatot anélkül, hogy a folyamathoz közölné.

Tegyük fel, hogy a ps -uwhoami visszaküldött valami hasonlónak

  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

És meg akarta ölni afirefox folyamatot folyamatazonosítójával, akkor:

kill -1 7667

Akkor újra ugyanazt aps parancsot futtatod, és ellenőrizheted, hogy a folyamat még mindig fut-e. Ha még mindig fut, akkor

kill -2 7667

az utat egészen a-9 -ig.

Ahhoz, hogy megöli a fiókjában elindított összes folyamatot, írja be akill <level> -1 értéket. Ugyanaz, mint korábban: dolgozzon akár-9 -ban.

Ha ismeri a folyamat nevét, akkor egyszerűen megy akillall <processname> -ra, ahol az az, amit megpróbálsz megölni. Például:killall fish (a hal, ebben az értelemben a Friendly Interactive SHell).

Akillall dokumentáció itt található: link

    
válasz adott Alexandre Santos 05.05.2015 01:37
forrás
2

... A Linux minden folyamata reagál a jelekre. A jelek egy ószintű módja annak, hogy a programokat megszüntesse vagy módosítsa.

Hogyan küldjön folyamatokat a PID jelekhez

A programhoz tartozó jelek átadásának legáltalánosabb módja a kill parancs.

Amint várható, a segédprogram alapértelmezett működése az, hogy megpróbálja megölni egy folyamatot:

kill PID_of_target_process

Ez elküldi a TERM jelet a folyamatnak. A TERM jel azt mondja, hogy a folyamat véget ér. Ez lehetővé teszi a program számára a tisztítási műveletek elvégzését és a simán kilép.

Ha a program rosszul működik és nem lép ki a TERM jel megadása után, akkor a jelet továbbadhatjuk a KILL jel továbbításával:

kill -KILL PID_of_target_process

Ez egy speciális jel, amelyet nem küldenek a programnak.

Ehelyett az operációs rendszermagnak adódik, amely leállítja a folyamatot. Ezzel megkerülik azokat a programokat, amelyek figyelmen kívül hagyják a nekik küldött jeleket ...

    
válasz adott jackal404258 03.05.2015 02:00
forrás
2

Írtam egy kis forgatókönyvet, amellyel megírták (az én esetemben) a Skype-ot:

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

De azt találtam, hogy annyira, mint az, hogy működött, akkor nem a következő nap, mert a pid volt egy másik hosszúságú, és a helyek mennyisége eltérő volt

Ezután találkoztam ezen a webhelyen és kipróbáltam

pgrep -l -u justin

, amely kényelmesen kiadja a

formátumú folyamatokat
[pid] [name]

Szó szerint ehhez a scripthez igazítottam:

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

Mi ez a csövek, az összes folyamatbanjustin fut (ami megváltoztatható bármely felhasználónévre) agrep -ra, amelyskype -ra keres (ez megváltoztatható a folyamatra), majd csöveket, linecut -ra, amely csak a PID-et olvasja, és végül akill parancsban használja azt a PID-t, hogy megölje.

    
válasz adott justingiffard 27.12.2013 22:10
forrás
2

Ezzel az alkalmazással megtekintheti a programlistákat

install htop

sudo apt-get install htop

a folyamat és a megölési folyamat megtekintéséhez Telepítheti és egyszerűen törölheti

    
válasz adott Reza Bojnordi 27.05.2017 14:21
forrás
0

A következő eljárást használtam egy Ubuntu ::

művelet megöléséhez

1. lépés: Kapcsold ki a folyamatot a grep használatával, vagy használd a -C is ::

parancsot
ps aux | -C 'filename'

vagy

ps -ef | -C 'filename'

vagy

ps aux | grep 'filename'

vagy

ps -ef | grep 'filename' 

2. lépés: Vegye figyelembe a pid számot.

3. lépés: Használd a "kill" parancsot a pid-számmal együtt:

kill pidnumber
    
válasz adott harrypotter0 27.05.2017 13:46
forrás
0

A Ctrl + Alt + Delete beállítható úgy, hogy hozzáférést biztosítson a feladatkezelőhöz, ahonnan egyszerűen meg lehet ölni a folyamatokat pár kattintással, és számomra kevésbé van szükség arra, hogy emlékezzen olyan parancsokra, amelyek károsak lehetnek, ha rosszul csinálják:

link

    
válasz adott Cedric Eveleigh 27.05.2017 13:52
forrás
0

Itt van egy egyszerű python script, amit írtam, killProcess.py, amely mindent elfogad, mint bemenet, és megöli azt.

Ezt a szkriptet írtam, mert sok python vagy csomópontprocessum van, amelyeket egyedileg és programmal akarok megölni. Nem tudom használni a "killall python" -t, mert megállítja azokat a folyamatokat, amelyekre szükségem van a futáshoz.

Kérjük, nevezze meg a "killProcess.py" fájlt, majd adja hozzá a megszakítani kívánt szkript nevét. Például: python killProcess.py runnablePoller.py megöli az runnablePoller.py fájlt

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));
    
válasz adott nick carraway 18.06.2017 21:39
forrás