A-Z käsud

Kuidas tappa või lõpetada Linuxi protsess Ultimate Guide

Kuidas tappa või lõpetada Linuxi protsess Ultimate Guide

Mitme töötlusega operatsioonisüsteemides, nagu Linux ja BSD, on protsessori kasutamise maksimeerimiseks mitu meetodit. Protsess on lihtsalt käivitatav programm. Kuna kindla aja jooksul töötab rohkem kui üks Linuxi protsess, on protsesside juhtimine Linuxis ülioluline. Kasutajad seisavad liiga paljude programmide käivitamisel sageli silmitsi selliste probleemidega nagu protsessori ressursside piiramine. Sellised olukorrad tekivad siis, kui protsessor ei suuda hakkama saada üha suurema hulga protsessidega. Kuigi see ei sõltu täielikult teie protsessori võimsusest, võib poomiste või zombiprotsessidega tegelemine olla üsna masendav. Selliste juhtumite leevendamiseks kirjeldame mõningaid standardseid viise nende protsesside hävitamiseks.

Master ei reageeri Linuxis protsesside haldamisele


Saate teada mitmel viisil Linuxi protsessi lõpetamiseks, mis ei reageeri üldse. Kui tulete Windowsist, võite olla tuttav Ctrl + Alt + Delete. Samamoodi on Maci kasutajatel külmunud protsesside tapmiseks Command + Option + Escape meetod. Linux on oma kolleegidest palju mitmekülgsem ja pakub rohkem kui ühte meetodit surnud / reageerimata protsesside lahendamiseks.

Surnud Linuxi protsessi tapmise erinevad meetodid


Põhiliselt toome välja kaks zombiprotsesside tapmise meetodit. Esimeseks meetodiks kasutame Linuxi terminali. Selleks peame kõigepealt tuvastama protsessi ID. Kui see on edukalt saadud, võime seda PID-d programmi tapmiseks saata, saates sellele PID-le konkreetseid signaale.

Graafilisest kasutajaliidesest või X-aknast saate teada, kuidas selliseid Linuxi tapmise töid teha. Kavandame "Süsteemimonitor" selle jaoks Ubuntu kaudu saadaval olev rakendus. Kuigi see on GNOME-rakendus, on sarnased tööriistad saadaval ka teiste Linuxi töölaua keskkondade jaoks.

Lõpeta reageerimata protsess käsurealt


Reageerimata või hangitud protsessi lõpetamiseks käsureal on mitu tööriista, sealhulgas tapma, pkill, ja Tapa kõik. Need käsud töötavad konkreetsete signaalide saatmisega neile reageerimata protsessidele. Teil on vaja protsessi ID või PID teavet, et saaksite neile saata vajaliku lõppsignaali.

PID või protsessi ID on kordumatu number, mis identifitseerib protsessi. Need loob Linuxi kernal töötamise ajal ja protsesside ajastaja kontrollib nende protsessori tegevust. Niisiis, alati, kui rakenduse käivitate, tekitab kern kõigepealt vajalikud protsessid ja määrab neile need ainulaadsed PID-väärtused. Protsessiga võib olla seotud mitu PID-d. Pealegi on igal protsessil üksikprotsess, millel on ainulaadne PPID (vanemaprotsessi ID).

Niisiis, kui saate selle PPID-i teada, saate tapmisignaali saata selleks loodud programmide abil. Allpool saate teada, kuidas kontrollida Linuxis töötavaid protsesse ja tuvastada nende PPID terminalist.

Uuri välja PPID teave


Protsessi PPID saate teada Linuxi mitme protsessihalduse käsu abil, näiteks pidof, pstree, ja pgrep. Uurime neid ükshaaval ja vaatame, kuidas saada Linuxi protsessi PID.

1. meetod: käsu ps kasutamine


Linuxi käsk ps kuvab kõik töötavad protsessid koos muu protsessiga seotud teabega, näiteks terminalis oleva PID-ga. Selle käsu abil saame loetleda kõik protsessid ja seejärel filtreerida konkreetne protsess välja, kasutades Linuxi käske grep. See peaks meile näitama meid huvitavat protsessi ID-teavet.

$ nano> / dev / null &
$ ps aux | grep "nano"

Esiteks oleme taustal kasutanud Linuxi tekstiredaktorit. Siis oleme selle redaktori PPID-i välja selgitamiseks kasutanud käsu ps kõrval grep-käsku. Väljund võib sisaldada mitut protsessi ID-d, kuid meid huvitab ainult esimene, kuna see on meie PPID. Selle teabe leidmiseks võime kasutada ka käsku Linux awk, nagu allpool näidatud.

$ ps aux | awk '/ nano / print $ 2'

See käsk on paindlikum, kuna see pärsib kogu ebaolulise teabe. See näitab ainult PPID-teavet, mida me otsime.

2. meetod: käsu pstree kasutamine


Käsk pstree annab meile puulaadse ülevaate kõigist käimasolevatest protsessidest. See pakub terminaliaknast Linuxi ülesannete loendi graafilist vaadet. Selle käsu abil saate vaadata nii protsessi PPID-d kui ka kogu protsessi PID-teavet. Vaadake allpool toodud näiteid, et teada saada, kuidas kasutada pstree'i konkreetse protsessi PPID leidmiseks.

$ nano> / dev / null &
$ pstree -p | grep 'nano' $ pstree -p | awk '/ nano / print $ NF'

Esiteks oleme esimese käsu abil tekitanud taustal protsessi. Seejärel võtab teine ​​käsk selle protsessi PPID-d, kasutades Linuxis käsku grep. Lõpuks näitab kolmas käsk, kuidas seda väärtust kätte saada käsu awk abil.

3. meetod: käsu pgrep kasutamine


Käsk pgrep on üks lihtsamaid protsesside haldamise käske Linuxis. See kontrollib kõigi käimasolevate protsesside loendit ja prindib antud juhul antud protsessi PPID standardväljundis või terminalis. See toimib regex-sobitamise abil ja sobib äärmiselt hästi Linuxi shelliskriptide kirjutamiseks.

$ nano> / dev / null &
$ pgrep 'nano'

Oleme sarnaselt varasematele näidetele nano-protsessi sünnitanud. Siis oleme saanud selle PPID käsu pgrep abil. Kui see väärtus on saavutatud, saame Linuxi tapmise töö väga lihtsalt läbi viia.

4. meetod: käsu pidof kasutamine


Käsk pidof on veel üks lihtne, kuid kasulik viis Linuxi protsessi PPID määramiseks. See kuvab nii PPID kui ka kõik muud protsessiga seotud PID-d. Allpool vaadake, kuidas seda praktikas kasutada.

$ nano> / dev / null &
$ pidof nano $ pidof -s nano

Kui kasutate käsku pidof Linuxis töötavate protsesside kontrollimiseks, näete sageli mitut PID-d. Tavaliselt on sellistel juhtudel esimene või viimane number PPID, olenevalt sellest, kas nad on tõusvas või järeltulevas järjekorras. Võite kasutada -s pidofi võimalus seda leevendada. See kuvab ainult PPID-väärtuse.

5. meetod: ülemise käsu kasutamine


Ülemine käsk annab reaalajas ülevaate kõikidest Unixi-laadsetes operatsioonisüsteemides töötavatest protsessidest. Selle abil saate oma terminalis kuvada Linuxi ülesannete loendi ja teada saada konkreetse protsessi PID-teabe.

$ top

Kasutage järgmisi käske, et tuua kindla protsessi PPID ülemise käsu väljundist.

$ nano> / dev / null &
$ top -n1 -b | grep 'nano' $ top -n1 -b | awk '/ nano / print $ 1'

Kuna top pakub reaalajas väljundit staatiliste andmete terminali viimise asemel, oleme seda kasutanud -n1 ja -b staatilise väljundi printimiseks. Seejärel saate hankida PPID-teabe kas Linuxis käsu grep või awk abil.

Tapa reageerimata Linuxi protsess


Reageerimata protsessi PPID hankimiseks võite kasutada mis tahes ülaltoodud meetodit. Kui olete selle kätte saanud, on aeg protsess täielikult tappa. On mitmeid käske, mis võimaldavad meil seda teha, näiteks tapma, pkill, ja Tapa kõik. Kuidas need ükshaaval toimivad, näeme järgmistes jaotistes.

1. meetod: kill-käsu kasutamine


Kill-käsku kasutavad Linuxi administraatorid oma lihtsuse ja jõulise tegevuse tõttu laialdaselt. See võtab protsessi PID ja signaali. Tuum tapab / peatab selle signaali põhjal protsessi teostamise. Järgmise käsu abil saate vaadata kõiki käsku kill saadaolevaid signaale.

$ kill -l

Nagu näete, pakub kill 64 erinevat signaali. Siiski käsitleme selles juhendis ainult kahte neist. Need on signaal 9 (SIGKILL) ja signaal 15 (SIGTERM). SIGTERM või signaal 15 on ohutu meetod reageerimata protsessi tapmiseks. SIGKILL ehk signaal 9 seevastu sunnib jõud Linuxi protsessi tapma.

$ kill -9 8631 $ kill -KILL 8631

Ülaltoodud käsud on samaväärsed ja need sunnivad tapma protsessi, millel on PID 8631. See on minu süsteemi nano-protsessi PPID. Asendage see süsteemi reageerimata protsessi PID-ga.

$ kill -15 8631 $ kill -TERM 8631

Ülaltoodud käsud on samuti samaväärsed ja tapavad protsessi graatsiliselt. Sellepärast võib kuluda aega, enne kui protsess tapetakse. Pealegi peate võib-olla lisama sudo enne käsku kill, kui protsess kuulub teisele kasutajale.

2. meetod: käsu pkill kasutamine


Käsk pkill on Linuxi üks mitmekülgsemaid protsesside haldamise käske. See võimaldab meil tappa reageerimata protsessi selle nime, PID, omaniku ja muude käituse atribuutide põhjal. See on ideaalne tööriist alustavatele kasutajatele või inimestele, kes pole paljude standardsete terminalikäskudega tuttavad.

$ pkill nano $ pkill 8631 $ pkill -e nano $ pkill -f nano

Võite kasutada mõnda ülaltoodud pkill-käsku zombie / reageerimata protsessi tapmiseks Linuxis. Kasuta -e suvand, kui soovite kinnitust Linuxi tapmistööle. Käsk pkill võimaldab kasutajatel saata ka konkreetseid lõppsignaale.

3. meetod: killali käsu kasutamine


Killall-käsk võimaldab kasutajatel tappa reageerimata protsesse nende nimede põhjal. Seda on lihtsam kasutada, kuid see võib tekitada probleeme, kui te pole ettevaatlik. Kuna killall lõpetab protsessid nimede põhjal, on alati võimalus, et lõpuks tapate protsessi juhuslikult. Näiteks kui teie süsteemis on saadaval erinevaid nano versioone, tapab esimene näide need kõik.

$ killall nano $ killall --verbose nano $ killall --interaktiivne nano $ killall --signal KILL nano

Esimene näide näitab killall-käsu põhikasutust Linuxis. Teine käsk annab teada, kas tapmistöö on õnnestunud või mitte, ja kolmas käsk küsib kasutajalt enne protsessi tapmist kinnitust. Vaikimisi kasutab killall protsesside tapmiseks signaali SIGTERM. Signaali saate siiski määrata käsitsi, nagu on näidatud viimases näites.

4. meetod: käepäraste ühe vooderdise kasutamine


Linuxi tõeline ilu seisneb selles, et see võimaldab kasutajatel luua keerukaid käsukombinatsioone, lähtudes nende vajadustest. Selle demonstreerimiseks oleme jaotises välja toonud mõned ühevooderdised.

$ nano> / dev / null &
$ kill -9 $ (pgrep nano) $ ps aux | grep -e 'nano' | awk 'print $ 2' | xargs tapab -9

Esimeses näites oleme protsessi nano PID edastamiseks Linuxi kill käsule kasutanud kesta interpoleerimist. Teine näide kasutab protsessi surmamiseks mitut igapäevast terminalikäsklust ja sisend- / väljundsiiret. Kui olete Linuxi terminaliga rahul, saate kureerida oma suurepäraseid ühe liinilaevu.

5. meetod: tapke mitu protsessi, kasutades Linuxi shelliskripte


Mõnikord võivad kasutajad soovida lõpetada rohkem kui ühe protsessi. Selliseid ülesandeid saame hõlpsasti automatiseerida, kirjutades lihtsad shelliskriptid. Kui see teema huvitab teid, vaadake meie eelmist juhendit Linuxi shelliskriptide kohta. Järgmine skript hankib tapetavate protsesside PPID ja lõpetab need tapmisignaalide abil.

$ nano proc-killer.sh
#!/ usr / bin / env bash for "$ @" do pid = $ (pgrep $ pro | head -1) echo $ pid comm = "kill -9 $ pid" eval $ comm valmis

Nüüd salvestage see fail ja lisage täitmisluba, väljastades alloleva käsu.

$ chmod + x proc-killer.sh

Nüüd saate sellele skriptile edastada protsesside nime, mille soovite lõpetada.

$ ./ proc-tapja.sh nano gedit vlc

Asendage argumendid lihtsalt oma süsteemis mittevastavate Linuxi protsesside nimedega.

Lõpeta GUI-st reageerimata protsess


Reageerimata protsessi saate lõpetada ka graafilise kasutajaliidese või akna X kaudu. Järgmises jaotises käsitleme kahte meetodit selle saavutamiseks.

1. meetod: rakenduse xkill kasutamine


Kaasaegsed Linuxi distributsioonid kasutavad X-graafilist akent, et pakkuda kasutajatele elegantset graafilist kogemust. Seal on lihtne tööriist nimega xkill, mis võimaldab kasutajatel sulgeda reageerimata GUI akna. See on võimalik, kuna Linuxis on rakenduse pealkirjaaken eraldi rakendusest endast.

Minge lihtsalt oma Linuxi terminaliemulaatorisse ja tippige xkill. See muudab teie hiire kursori X-nupuks, mida saab kasutada mis tahes GUI-akna tapmiseks.

$ xkill

Nüüd peate lihtsalt klõpsama reageerimata rakenduse aknaribal, see tapetakse ja kaob koheselt.

2. meetod: System Monitori rakenduse kasutamine Ubuntu


Enamik peavoolu Linuxi distributsioonidest on varustatud mingisuguste graafilise kasutajaliidese jälgimise tööriistadega, mis võimaldavad kasutajatel üles riputatud Linuxi protsess graafiliselt lõpetada. Näiteks võimaldab Ubuntu süsteemimonitori rakendus meil reageerimata protsessi intuitiivsel viisil lõpetada. Võite lihtsalt valida surnud protsessi protsesside loendist ja tappa selle, paremklõpsates protsessi ja valides tapmise suvandi.

Sellele rakendusele on veel palju alternatiive ja oleme kindlad, et leiate selle oma levitamise või töölaua keskkonda hõlpsalt.

Lõpumõtted


Kuna Linuxis on protsesside juhtimine väga mitmekülgne, tekivad kasutajates reageerimata protsessidega sageli pettumused. Seetõttu on meie toimetajad selles juhendis välja toonud kõik võimalikud viisid surnud Linuxi protsessi lõpetamiseks. Pärast selle lugemist peaksite suutma tappa kõik reageerimata protsessid kas käsurealt või GUI-st. Selliste häiretega võimalikult lühikese aja jooksul saate toime tulla ka kõigi meie ühe liiniga käskudega. Pealegi võite meie lihtsa shelliskripti abil tappa isegi rohkem kui ühe protsessi. Nii et loodetavasti hankisite teavet, mida otsisite, meie juhendist.

Kuidas Linuxis oma mänguseanssi jäädvustada ja voogesitada
Varem peeti mängude mängimist ainult hobiks, kuid aja jooksul kasvas mängutööstus tehnoloogia ja mängijate arvu osas tohutult. Mängupublik on veebimän...
Parimad mängud, mida saab mängida käte jälgimisega
Oculus Quest tutvustas hiljuti suurepärast ideed käsitsi jälgimisest ilma kontrolleriteta. Üha suurema hulga mängude ja tegevustega, mis toetavad kas ...
Kuidas kuvada OSD ülekatet täisekraanil Linuxi rakendustes ja mängudes
Täisekraaniga mängude mängimine või rakenduste kasutamine häireteta täisekraanirežiimis võib teid paneelil või tegumiribal kuvatavast asjakohasest süs...