A-Z komandas

Kā nogalināt vai pārtraukt Linux procesu The Ultimate Guide

Kā nogalināt vai pārtraukt Linux procesu The Ultimate Guide

Vairāku procesu apstrādes operētājsistēmas, piemēram, Linux un BSD, izmanto vairākas metodes, lai maksimizētu CPU izmantošanu. Process ir vienkārši izpildāma programma. Tā kā noteiktā laikā darbosies vairāk nekā viens Linux process, procesu pārvaldība Linux ir ārkārtīgi svarīga. Lietotāji bieži saskaras ar tādām problēmām kā CPU resursu ierobežošana, kad darbojas pārāk daudz programmu. Šādas situācijas rodas, kad centrālais procesors nespēj apstrādāt pieaugošo procesu skaitu. Lai gan tas nav pilnībā atkarīgs no jūsu procesora jaudas, nodarbošanās ar pakārtiem vai zombiju procesiem var būt diezgan nomākta. Lai palīdzētu jums mazināt šādus gadījumus, mēs izklāstām dažus standarta veidus, kā nogalināt šos procesus.

Master nereaģē uz procesu pārvaldību Linux


Jūs uzzināsiet vairākus veidus, kā pārtraukt Linux procesu, kas vispār nereaģē. Ja izmantojat operētājsistēmu Windows, iespējams, esat pazīstams ar Ctrl + Alt + Delete. Tāpat Mac lietotājiem ir Command + Option + Escape metode iesaldēto procesu nogalināšanai. Linux ir daudz universālāks nekā tā kolēģi un piedāvā vairāk nekā vienu metodi mirušu / nereaģējošu procesu novēršanai.

Dažādas metodes mirušā Linux procesa nogalināšanai


Mēs galvenokārt izklāstīsim divas metodes zombiju procesu nogalināšanai. Pirmajai metodei mēs izmantosim Linux termināli. Lai to izdarītu, mums vispirms ir jāidentificē procesa ID. Kad tas ir veiksmīgi iegūts, mēs varam izmantot šo PID, lai iznīcinātu programmu, nosūtot konkrētus signālus uz šo PID.

Jūs arī uzzināsiet, kā veikt šādus Linux nogalināšanas darbus no grafiskā lietotāja interfeisa vai X loga. Mēs izmantosim "Sistēmas monitors" Tam ir pieejama programma Ubuntu. Lai gan šī ir GNOME lietojumprogramma, līdzīgi rīki ir pieejami arī citās Linux darbvirsmas vidēs.

Pārtrauciet nereaģējošu procesu no komandrindas


Ir vairāki rīki, lai pārtrauktu nereaģējošu vai pakārtotu procesu no komandrindas, ieskaitot nogalināt, pkill, un Nogalini visus. Šīs komandas darbojas, nosūtot īpašus signālus šiem nereaģējošajiem procesiem. Jums būs nepieciešams procesa ID vai PID informāciju, lai jūs varētu nosūtīt viņiem nepieciešamo beigu signālu.

PID vai procesa ID ir unikāls numurs, kas identificē procesu. Tos izpildes laikā izveido Linux kodols, un procesu plānotājs kontrolē viņu procesora darbības. Tātad, kad jūs izsaucat lietojumprogrammu, kodols vispirms radīs nepieciešamos procesus un piešķirs viņiem šīs unikālās PID vērtības. Ar procesu var būt saistīti vairāki PID. Turklāt katram procesam ir viens vecāks process ar unikālu PPID (vecāku procesa ID).

Tātad, ja jūs varat uzzināt šo PPID, jūs varēsiet nosūtīt slepkavības signālu, izmantojot šim nolūkam paredzētas programmas. Zemāk jūs uzzināsiet, kā pārbaudīt darbojošos procesus Linux un noteikt to PPID no termināļa.

Uzziniet PPID informāciju


Procesa PPID var uzzināt, izmantojot vairākas procesa pārvaldības komandas Linux, piemēram, pidof, pstree, un pgrep. Pārbaudīsim tos pa vienam un redzēsim, kā iegūt Linux procesa PID.

1. metode: ps komandas izmantošana


Ps komanda Linux parāda visus darbojošos procesus kopā ar citu ar procesu saistītu informāciju, piemēram, PID terminālā. Mēs varam izmantot šo komandu, lai uzskaitītu visus procesus un pēc tam filtrētu noteiktu procesu, izmantojot Linux grep komandas. Tam vajadzētu parādīt mums interesējošo procesa ID informāciju.

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

Pirmkārt, mēs esam izmantojuši Linux teksta redaktoru fonā. Tad mēs esam izmantojuši komandu ps blakus komandai grep, lai uzzinātu šī redaktora PPID. Izejā var būt vairāki procesa ID, taču mūs interesē tikai pirmais, jo tas ir mūsu PPID. Mēs varam arī izmantot komandu Linux awk, lai uzzinātu šo informāciju, kā parādīts zemāk.

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

Šī komanda ir elastīgāka, jo tā nomāc visu neatbilstošo informāciju. Tas parādīs tikai to PPID informāciju, kuru meklējam.

2. metode: komandas pstree izmantošana


Komanda pstree sniedz kokam līdzīgu skatu uz visiem notiekošajiem procesiem. Tas nodrošina grafisko Linux uzdevumu saraksta skatu no termināļa loga. Izmantojot šo komandu, varat apskatīt PPID, kā arī visu procesa PID informāciju. Pārbaudiet tālāk sniegtos piemērus, lai uzzinātu, kā izmantot pstree, lai atrastu konkrēta procesa PPID.

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

Pirmkārt, mēs esam radījuši procesu fonā, izmantojot pirmo komandu. Pēc tam otrā komanda izgūst šī procesa PPID, izmantojot Linux grep komandu. Visbeidzot, trešā komanda parāda, kā iegūt šo vērtību, izmantojot komandu awk.

3. metode: komandas pgrep izmantošana


Komanda pgrep ir viena no vienkāršākajām procesu pārvaldības komandām Linux. Tas pārbauda visu darbojošos procesu sarakstu un standarta gadījumā izdrukā attiecīgā procesa PPID vai mūsu gadījumā. Tas darbojas, veicot regex atbilstību, un ir ļoti labi piemērots Linux čaulas skriptu rakstīšanai.

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

Mēs esam radījuši nano procesu līdzīgi kā iepriekšējos piemēros. Tad mēs esam ieguvuši tā PPID, izmantojot komandu pgrep. Tiklīdz mēs iegūstam šo vērtību, mēs varam ļoti viegli izpildīt Linux kill darbu.

4. metode: komandas pidof izmantošana


Komanda pidof ir vēl viens vienkāršs, bet noderīgs veids, kā noteikt Linux procesa PPID. Tas parāda gan PPID, gan visus citus PID, kas saistīti ar procesu. Pārbaudiet tālāk sniegto informāciju, lai uzzinātu, kā to izmantot praksē.

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

Izmantojot komandu pidof, lai pārbaudītu darbojošos procesus Linux, jūs bieži redzēsit vairākus PID. Parasti šādos gadījumos pirmais vai pēdējais skaitlis ir PPID atkarībā no tā, vai tie ir augšupejošā vai lejupejošā secībā. Jūs varat izmantot -s iespēja pidof to mazināt. Tas parādīs tikai PPID vērtību.

5. metode: augšējās komandas izmantošana


Augšējā komanda nodrošina reāllaika skatu uz visiem Unix līdzīgajās operētājsistēmās notiekošajiem procesiem. To var izmantot, lai terminālā parādītu Linux uzdevumu sarakstu un uzzinātu konkrēta procesa PID informāciju.

$ top

Izmantojiet šīs komandas, lai izgūtu konkrēta procesa PPID no augšējās komandas izejas.

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

Tā kā top nodrošina reāllaika izvadi, nevis statisko datu izgāšanu terminālā, mēs esam izmantojuši -n1 un -b iespēja izdrukāt statisko izvadi. Tad jūs varat izgūt PPID informāciju, izmantojot Linux komandu grep vai awk.

Nogaliniet nereaģējošo Linux procesu


Lai izgūtu nereaģējošā procesa PPID, varat izmantot jebkuru no iepriekš minētajām metodēm. Kad esat to ieguvis, ir pienācis laiks procesu pilnībā nogalināt. Ir vairākas komandas, kas mums ļauj to izdarīt, piemēram, nogalināt, pkill, un Nogalini visus. To, kā viņi darbojas pa vienam, redzēsim nākamajās sadaļās.

1. metode: komandas kill izmantošana


Kill komandu Linux administratori plaši izmanto vienkāršības un robusto darbību dēļ. Tas prasa procesa PID un signālu. Kodols nogalina / aptur procesa izpildi, pamatojoties uz šo signālu. Jūs varat izmantot nākamo komandu, lai skatītu visus pieejamos signālus komandai kill.

$ kill -l

Kā redzat, kill piedāvā 64 dažādus signālus. Tomēr šajā ceļvedī mēs apspriedīsim tikai divus no tiem. Tie ir signāls 9 (SIGKILL) un signāls 15 (SIGTERM). SIGTERM jeb 15. signāls ir droša metode, kā nogalināt nereaģējošu procesu. Savukārt SIGKILL jeb 9. signāls piespiež Linux procesu.

$ nogalināt -9 8631 $ nogalināt -KILL 8631

Iepriekš minētās komandas ir līdzvērtīgas, un tās piespiedīs nogalināt procesu, kuram ir PID 8631. Tas ir procesa “nano” PPID manā sistēmā. Nomainiet to ar nereaģējošā procesa PID jūsu sistēmā.

$ kill -15 8631 $ kill -TERM 8631

Iepriekš minētās komandas ir arī līdzvērtīgas, un tās graciozi nogalinās. Tāpēc var paiet zināms laiks, līdz process tiek nogalināts. Turklāt jums var būt nepieciešams pievienot sudo pirms komandas kill, ja process pieder citam lietotājam.

2. metode: komandas pkill izmantošana


Komanda pkill ir viena no daudzpusīgākajām procesu pārvaldības komandām Linux. Tas ļauj mums nogalināt nereaģējošu procesu, pamatojoties uz tā nosaukumu, PID, īpašnieku un citiem izpildlaika atribūtiem. Tas ir ideāls līdzeklis, lai sāktu lietotājus vai cilvēkus, kuri nav pazīstami ar daudzām standarta termināla komandām.

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

Jūs varat izmantot jebkuru no iepriekš minētajām komandām pkill, lai nogalinātu zombiju / nereaģē uz Linux. Izmantojiet -e opcija, ja vēlaties saņemt apstiprinājumu par Linux kill darbu. Komanda pkill arī ļauj lietotājiem nosūtīt konkrētus beigu signālus.

3. metode: Killall komandas izmantošana


Komanda killall ļauj lietotājiem nogalināt nereaģējošus procesus, pamatojoties uz viņu vārdiem. To ir vieglāk izmantot, bet tas var radīt nepatikšanas, ja neesat piesardzīgs. Tā kā killall pārtrauc procesus, pamatojoties uz nosaukumiem, vienmēr ir iespēja, ka jūs galu galā nogalināt procesu nejauši. Piemēram, ja jūsu sistēmā ir pieejamas dažādas nano versijas, pirmais piemērs tās visas nogalinās.

$ killall nano $ killall - izteiksmīgs nano $ killall - interaktīvs nano $ killall - signāls KILL nano

Pirmais piemērs parāda killall komandas pamata lietojumu Linux. Otrā komanda ziņos, vai slepkavības darbs ir veiksmīgs vai nē, un trešā komanda lūgs lietotājam apstiprinājumu, pirms tā nogalina procesu. Pēc noklusējuma killall nogalināšanas procesiem izmanto SIGTERM signālu. Tomēr signālu varat norādīt manuāli, kā parādīts pēdējā piemērā.

4. metode: ērtu vienas līnijpārvadātāju izmantošana


Patiesais Linux skaistums ir tajā, ka tas ļauj lietotājiem izveidot sarežģītas komandu kombinācijas, pamatojoties uz viņu vajadzībām. Lai to parādītu, sadaļā mēs esam izklāstījuši dažus vienas līnijpārvadātājus.

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

Pirmajā piemērā mēs esam izmantojuši čaulas interpolāciju, lai procesa “nano” PID nodotu komandai Linux kill. Otrajā piemērā tiek izmantotas vairākas ikdienas termināla komandas un I / O novirzīšana, lai iznīcinātu procesu. Pēc tam, kad esat apmierināts ar Linux termināli, jūs varat sagatavot savus izveicīgos vienas līnijpārvadātājus.

5. metode: nogaliniet vairākus procesus, izmantojot Linux čaulas skriptus


Dažreiz lietotāji var vēlēties pārtraukt vairāk nekā vienu procesu. Šādus uzdevumus mēs varam viegli automatizēt, rakstot vienkāršus čaulas skriptus. Ja jūs interesē šī tēma, skatiet mūsu iepriekšējo Linux čaulas skriptu ceļvedi. Šis skripts izgūs to procesu PPID, kurus vēlaties nogalināt, un pēc tam tos pārtrauks, izmantojot nogalināšanas signālus.

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

Tagad saglabājiet šo failu un pievienojiet izpildes atļauju, izsniedzot zemāk esošo komandu.

$ chmod + x proc-killer.sh

Tagad jūs varat nodot šim skriptam to procesu nosaukumu, kurus vēlaties pārtraukt.

$ ./ proc-killer.sh nano gedit vlc

Vienkārši aizstājiet argumentus ar nereaģējošo Linux procesu nosaukumiem jūsu sistēmā.

Pārtraukt nereaģējošu procesu no GUI


Nereaģējošu procesu var pārtraukt arī no grafiskā lietotāja interfeisa vai X loga. Nākamajā sadaļā mēs apspriežam divas metodes, kā to izdarīt.

1. metode: lietojumprogrammas xkill izmantošana


Mūsdienu Linux izplatījumos tiek izmantots X grafiskais logs, lai lietotājiem nodrošinātu elegantu grafisko pieredzi. Ir vienkāršs rīks, ko sauc par xkill, kas ļauj lietotājiem aizvērt nereaģējošu GUI logu. Tas ir iespējams, jo operētājsistēmā Linux lietojumprogrammas nosaukuma logs ir nošķirts no pašas lietojumprogrammas.

Vienkārši dodieties uz Linux termināļa emulatoru un ierakstiet xkill. Tas pārveidos peles kursoru par X pogu, kuru var izmantot jebkura GUI loga nogalināšanai.

$ xkill

Tagad viss, kas jums jādara, ir vienkārši noklikšķināt uz nereaģējošās lietojumprogrammas loga joslas, un tā tiks nogalināta un uzreiz pazudīs.

2. metode: System Monitor lietojumprogrammas izmantošana Ubuntu


Lielākajai daļai Linux izplatīto izplatījumu ir sava veida GUI uzraudzības rīki, kas lietotājiem ļauj grafiski pārtraukt pakarināto Linux procesu. Piemēram, System Monitor lietojumprogramma Ubuntu ļaus mums intuitīvi pārtraukt nereaģējošu procesu. Jūs varat vienkārši izvēlēties mirušo procesu no procesu saraksta un nogalināt to, ar peles labo pogu noklikšķinot uz procesa un atlasot opciju nogalināt.

Šai lietojumprogrammai ir daudz vairāk alternatīvu, un mēs esam pārliecināti, ka jūs varat viegli atrast tādu izplatīšanas vai darbvirsmas videi.

Beigu domas


Tā kā procesu pārvaldība Linux ir ļoti daudzpusīga, lietotāji bieži vien sarūgtina, strādājot ar nereaģējošiem procesiem. Tāpēc mūsu redaktori šajā ceļvedī ir izklāstījuši visus iespējamos veidus, kā pārtraukt mirušu Linux procesu. Pēc tam, kad esat to izlasījis, jums vajadzētu būt iespējai iznīcināt visus nereaģējošos procesus no komandrindas vai GUI. Varat arī izmantot jebkuru no mūsu vienas līnijas komandām, lai pēc iespējas īsākā laikā tiktu galā ar šādām neērtībām. Turklāt jūs pat varat nogalināt vairāk nekā vienu procesu, izmantojot mūsu vienkāršo čaulas skriptu. Tāpēc, cerams, jūs ieguvāt informāciju, kuru meklējāt, no mūsu ceļveža.

AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...
Vidējā peles poga nedarbojas sistēmā Windows 10
The peles vidējā poga palīdz jums ritināt garas tīmekļa lapas un ekrānus ar lielu datu daudzumu. Ja tas apstājas, jūs galu galā izmantosiet tastatūru,...
Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...