A – Z komandos

Kaip nužudyti ar nutraukti „Linux“ procesą „The Ultimate Guide“

Kaip nužudyti ar nutraukti „Linux“ procesą „The Ultimate Guide“

Daugiaprocesinėse operacinėse sistemose, tokiose kaip „Linux“ ir BSD, naudojami keli metodai, skirti maksimaliam procesoriaus panaudojimui. Procesas yra tiesiog vykdoma programa. Kadangi tam tikru metu bus vykdomi daugiau nei vienas „Linux“ procesas, „Linux“ procesų valdymas yra nepaprastai svarbus. Vykdydami per daug programų, vartotojai dažnai susiduria su tokiomis problemomis kaip procesoriaus išteklių ribojimas. Tokios situacijos atsiranda, kai procesorius nesugeba tvarkyti vis didėjančio procesų skaičiaus. Nors tai visiškai nepriklauso nuo jūsų procesoriaus galios, susidoroti su pakabintais ar zombių procesais gali būti gana apmaudu. Norėdami padėti sušvelninti tokius įvykius, mes apibūdiname keletą standartinių būdų, kaip užmušti šiuos procesus.

Meistras neatsako į „Linux“ procesų valdymą


Sužinosite keletą būdų, kaip nutraukti „Linux“ procesą, kuris visiškai nereaguoja. Jei atėjote iš „Windows“, jums gali būti žinomi „Ctrl“ + „Alt“ + „Delete“. Panašiai „Mac“ vartotojai turi užšaldytų procesų naikinimo metodą „Command + Option + Escape“. „Linux“ yra daug universalesnė nei kolegos ir siūlo daugiau nei vieną metodą, kaip išspręsti mirusius / nereaguojančius procesus.

Skirtingi mirusio Linux proceso nužudymo metodai


Mes daugiausia apibūdinsime du zombių procesų žudymo metodus. Pirmajam metodui naudosime „Linux“ terminalą. Tam pirmiausia reikės identifikuoti proceso ID. Sėkmingai gavę, mes galime naudoti šį PID, kad užmuštume programą siunčiant tam PID konkrečius signalus.

Taip pat sužinosite, kaip atlikti tokius „Linux“ žudymo darbus iš grafinės vartotojo sąsajos arba lango X. Mes ketiname panaudoti „Sistemos monitorius“ tam galima programa „Ubuntu“. Nors tai yra GNOME programa, panašių įrankių yra ir kitose „Linux“ darbalaukio aplinkose.

Komandos eilutėje nutraukti nereaguojantį procesą


Yra keli įrankiai, skirti nutraukti nereaguojantį arba pakabintą procesą komandinėje eilutėje, įskaitant nužudyti, pkill, ir killall. Šios komandos veikia siunčiant specifinius signalus šiems nereaguojantiems procesams. Jums reikės proceso ID arba PID informaciją, kad galėtumėte jiems nusiųsti reikiamą užbaigimo signalą.

PID arba proceso ID yra unikalus numeris, identifikuojantis procesą. Tai sukuria „Linux“ branduolys vykdymo metu, o procesų planuoklis valdo jų procesoriaus veiklą. Taigi, kai tik iškviečiate programą, branduolys pirmiausia sukurs būtinus procesus ir priskirs jiems šias unikalias PID reikšmes. Su procesu gali būti susieti keli PID. Be to, kiekvienas procesas turi vieną pirminį procesą su unikaliu PPID (pirminio proceso ID).

Taigi, jei sužinosite šį PPID, galėsite siųsti nužudymo signalą naudodami šiam tikslui skirtas programas. Žemiau sužinosite, kaip patikrinti vykdomus procesus sistemoje „Linux“ ir nustatyti jų PPID iš terminalo.

Sužinokite PPID informaciją


Galite sužinoti proceso PPID naudodami kelias „Linux“ procesų valdymo komandas, pvz., pidof, pstree, ir pgrep. Panagrinėkime juos po vieną ir pažiūrėkime, kaip gauti „Linux“ proceso PID.

1 metodas: ps komandos naudojimas


„Linux“ komanda „ps“ komandoje rodomi visi vykdomi procesai kartu su kita su procesu susijusia informacija, pavyzdžiui, terminalo PID. Šią komandą galime naudoti norėdami išvardyti visus procesus ir tada filtruoti konkretų procesą naudodami „Linux“ grep komandas. Tai turėtų parodyti mums įdomią proceso ID informaciją.

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

Pirmiausia fone pasitelkėme „Linux“ teksto rengyklę. Tada mes naudojome komandą ps kartu su grep komanda, norėdami sužinoti šio redaktoriaus PPID. Išvestyje gali būti keli proceso ID, tačiau mus domina tik pirmasis, nes tai yra mūsų PPID. Mes taip pat galime naudoti „Linux awk“ komandą, kad sužinotume šią informaciją, kaip parodyta žemiau.

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

Ši komanda yra lankstesnė, nes slopina visą nesusijusią informaciją. Tai parodys tik mūsų ieškomą PPID informaciją.

2 metodas: naudokite komandą „pstree“


„Pstree“ komanda pateikia medžio pavidalo visų vykdomų procesų vaizdą. Iš terminalo lango pateikiamas grafinis „Linux“ užduočių sąrašo vaizdas. Naudodami šią komandą, galite peržiūrėti PPID ir visą proceso PID informaciją. Peržiūrėkite toliau pateiktus pavyzdžius, kad sužinotumėte, kaip panaudoti „pstree“, norint rasti konkretaus proceso PPID.

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

Pirma, mes sukūrėme procesą fone, naudodami pirmąją komandą. Tada antroji komanda gauna šio proceso PPID naudodama „Linux“ komandą grep. Galiausiai trečioji komanda parodo, kaip gauti šią vertę naudojant komandą awk.

3 metodas: naudokite komandą pgrep


„Pgrep“ komanda yra viena iš paprasčiausių „Linux“ procesų valdymo komandų. Jis patikrina visų vykstančių procesų sąrašą ir atspausdina tam tikro proceso PPID standartinėje išvestyje arba mūsų atveju terminalą. Jis veikia vykdydamas regex atitikimą ir yra labai tinkamas rašyti „Linux“ apvalkalo scenarijus.

$ nano> / dev / null &
$ pgrep „nano“

Mes sukūrėme nano procesą panašiai kaip ankstesni pavyzdžiai. Tada mes gavome jo PPID naudodami komandą pgrep. Gavę šią vertę, „Linux kill“ darbą galime atlikti labai lengvai.

4 metodas: naudokite komandą pidof


„Pidof“ komanda yra dar vienas paprastas, bet naudingas būdas nustatyti „Linux“ proceso PPID. Tai rodo ir PPID, ir visus kitus PID, susietus su procesu. Peržiūrėkite toliau, kad sužinotumėte, kaip tai naudoti praktiškai.

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

Naudodami komandą pidof norėdami patikrinti vykstančius procesus sistemoje „Linux“, dažnai pamatysite kelis PID. Paprastai tokiais atvejais pirmas ar paskutinis skaičius yra PPID, atsižvelgiant į tai, ar jie yra didėjimo, ar mažėjimo tvarka. Galite naudoti -s „pidof“ galimybė tai sušvelninti. Bus rodoma tik PPID reikšmė.

5 metodas: viršutinės komandos naudojimas


Viršutinė komanda pateikia realaus laiko visų vykdomų procesų, panašių į „Unix“ operacines sistemas, vaizdą. Galite tai naudoti norėdami rodyti „Linux“ užduočių sąrašą savo terminale ir sužinoti konkretaus proceso PID informaciją.

$ top

Norėdami gauti tam tikro proceso PPID iš viršutinės komandos išvesties, naudokite šias komandas.

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

Kadangi „Top“ pateikia realiuoju laiku išvestį, o ne statinius duomenis į terminalą, mes naudojome -n1 ir -b galimybė atspausdinti statinę išvestį. Tada galite gauti PPID informaciją naudodami komandą grep arba komandą awk „Linux“.

Nužudyk neatsakantį „Linux“ procesą


Norėdami gauti nereaguojančio proceso PPID, galite naudoti bet kurį iš anksčiau nurodytų metodų. Tai gavus, laikas visiškai užmušti procesą. Yra keletas komandų, leidžiančių mums tai padaryti, pvz nužudyti, pkill, ir killall. Kaip jie veikia po vieną, pamatysime tolesniuose skyriuose.

1 metodas: komandos „kill“ naudojimas


„Kill“ komandą plačiai naudoja „Linux“ administratoriai dėl savo paprastumo ir patikimų veiksmų. Tam reikia proceso PID ir signalo. Branduolys užmuša / sustabdo proceso vykdymą pagal šį signalą. Galite naudoti kitą komandą, kad galėtumėte peržiūrėti visus galimus komandos „kill“ signalus.

$ nužudyti -l

Kaip matote, „kill“ siūlo 64 skirtingus signalus. Tačiau šiame vadove aptarsime tik du iš jų. Tai yra 9 signalas (SIGKILL) ir 15 signalas (SIGTERM). SIGTERM arba signalas 15 yra saugus būdas nereaguoti į procesą. Kita vertus, „SIGKILL“ arba „signal 9“ jėga užmuša „Linux“ procesą.

$ nužudyti -9 8631 $ nužudyti -KILL 8631

Minėtos komandos yra lygiavertės ir jos privers užmušti procesą, kuris turi PID 8631. Tai yra „nano“ proceso mano sistemoje PPID. Pakeiskite tai sistemos nereaguojančio proceso PID.

$ kill -15 8631 $ kill -TERM 8631

Minėtos komandos taip pat yra lygiavertės ir grakščiai užmuš procesą. Štai kodėl gali praeiti šiek tiek laiko, kol procesas bus užmuštas. Be to, gali tekti pridėti sudo prieš komandą kill, jei procesas priklauso kitam vartotojui.

2 metodas: naudokite komandą „pkill“


„Pkill“ komanda yra viena iš universaliausių „Linux“ procesų valdymo komandų. Tai leidžia mums užmušti nereaguojantį procesą pagal jo pavadinimą, PID, savininką ir kitus vykdymo laiko atributus. Tai puikus įrankis pradedantiems vartotojams ar žmonėms, kurie nėra susipažinę su daugeliu standartinių terminalo komandų.

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

Norėdami nužudyti zombį / nereaguoti į „Linux“, galite naudoti bet kurią iš pirmiau nurodytų komandų „pkill“. Naudoti -e parinktį, jei norite patvirtinti „Linux kill“ darbą. Komanda „pkill“ taip pat leidžia vartotojams siųsti konkrečius baigiamuosius signalus.

3 metodas: Killall komandos naudojimas


Komanda killall leidžia vartotojams nužudyti nereaguojančius procesus pagal jų vardus. Tai lengviau naudoti, bet gali sukelti problemų, jei nesate atsargūs. Kadangi killall nutraukia procesus pagal pavadinimus, visada yra tikimybė, kad jūs galų gale nužudysite procesą atsitiktinai. Pvz., Jei jūsų sistemoje yra skirtingų nano versijų, pirmasis pavyzdys jas visas užmuš.

$ killall nano $ killall --verbose nano $ killall --interactive interactive nano $ killall --signal KILL nano

Pirmasis pavyzdys rodo pagrindinį „killall“ komandos naudojimą „Linux“. Antroji komanda praneš, ar nužudymo darbas sėkmingas, ar ne, o trečioji komanda paprašys vartotojo patvirtinimo, kol ji užmuša procesą. Pagal numatytuosius nustatymus killall naudoja SIGTERM signalą žudymo procesams. Tačiau signalą galite nurodyti rankiniu būdu, kaip parodyta paskutiniame pavyzdyje.

4 metodas: naudokite patogius vienkartinius įdėklus


Tikrasis „Linux“ grožis slypi tame, kad jis leidžia vartotojams sukurti sudėtingus komandų derinius, atsižvelgiant į jų poreikius. Norėdami tai parodyti, skyriuje aprašėme keletą vienkartinių įdėklų.

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

Pirmajame pavyzdyje mes naudojome apvalkalo interpoliaciją, norėdami perduoti proceso „nano“ PID komandai „Linux kill“. Antrame pavyzdyje naudojamos kelios kasdienės terminalo komandos ir įvesties / išvesties peradresavimas, kad būtų nutrauktas procesas. Kai kursite „Linux“ terminalą, galėsite kuruoti savo puikius vienos linijos lainerius.

5 metodas: nužudykite kelis procesus naudodami „Linux Shell“ scenarijus


Kartais vartotojai gali norėti nutraukti daugiau nei vieną procesą. Tokias užduotis galime lengvai automatizuoti, rašydami paprastus apvalkalo scenarijus. Jei jus domina ši tema, patikrinkite mūsų ankstesnį „Linux shell“ scenarijų vadovą. Šis scenarijus nuskaitys norimų nužudyti procesų PPID ir juos nutrauks naudodamas užmušimo signalus.

$ nano proc-žudikas.sh
#!/ usr / bin / env bash for pro programoje „$ @“ do pid = $ (pgrep $ pro | head -1) echo $ pid comm = "kill -9 $ pid" eval $ comm done

Dabar išsaugokite šį failą ir pridėkite vykdymo leidimą, išleisdami žemiau esančią komandą.

$ chmod + x proc-killer.sh

Dabar šiam scenarijui galite perduoti procesų, kuriuos norite nutraukti, pavadinimą.

$ ./ proc-žudikas.sh nano gedit vlc

Paprasčiausiai pakeiskite argumentus nereaguojančių „Linux“ procesų pavadinimais jūsų sistemoje.

Nutraukti nereaguojantį procesą iš GUI


Taip pat galite nutraukti nereagavimą naudodami grafinę vartotojo sąsają arba langą X. Kitame skyriuje aptarsime du būdus, kaip tai padaryti.

1 metodas: „xkill“ programos naudojimas


Šiuolaikiniai „Linux“ paskirstymai naudoja X grafinį langą, kad vartotojams suteiktų elegantišką grafinę patirtį. Yra paprastas įrankis, vadinamas xkill, kuris leidžia vartotojams uždaryti nereaguojantį GUI langą. Tai įmanoma, nes sistemoje „Linux“ programos pavadinimo langas yra atskiras nuo pačios programos.

Tiesiog eikite į savo „Linux“ terminalo emuliatorių ir įveskite „xkill“. Tai pavers pelės žymeklį į X mygtuką, kurį galima naudoti norint užmušti bet kurį GUI langą.

$ xkill

Viskas, ką jums reikia padaryti, tai tiesiog spustelėkite ant nereaguojančios programos lango juostos, ir ji bus užmušta ir akimirksniu dings.

2 metodas: „System Monitor“ programos naudojimas „Ubuntu“


Daugumoje pagrindinių „Linux“ paskirstymų yra tam tikri GUI stebėjimo įrankiai, leidžiantys vartotojams grafiškai nutraukti pakabintą „Linux“ procesą. Pavyzdžiui, „System Monitor“ programa „Ubuntu“ leis mums intuityviai nutraukti nereaguojantį procesą. Jūs galite tiesiog pasirinkti negyvą procesą iš procesų sąrašo ir jį nužudyti dešiniuoju pelės mygtuku spustelėdami procesą ir pasirinkdami nužudymo parinktį.

Šiai programai yra daug daugiau alternatyvų, ir mes esame tikri, kad galite lengvai rasti tokią savo platinimo ar darbalaukio aplinkai.

Baigiančios mintys


Kadangi procesų valdymas sistemoje „Linux“ yra labai universalus, vartotojai dažnai nusivilia, kai sprendžia nereaguojančius procesus. Štai kodėl mūsų redaktoriai šiame vadove aprašė visus galimus būdus nutraukti negyvą „Linux“ procesą. Perskaitę tai turėtumėte sugebėti užkirsti kelią nereaguojantiems procesams nei iš komandinės eilutės, nei iš GUI. Jūs taip pat galite naudoti bet kurią iš mūsų vieno linijinio tinklo komandų, kad pašalintumėte tokius nemalonumus per trumpiausią įmanomą laiką. Be to, jūs netgi galite nužudyti daugiau nei vieną procesą naudodami mūsų paprastą apvalkalo scenarijų. Tikimės, kad informaciją, kurios ieškojote, gavote iš mūsų vadovo.

Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...