Kā nogalināt procesu pēc nosaukuma operētājsistēmā Linux

Piespiedu kārtā pārtrauciet nepareizas darbības procesus, izmantojot šīs Linux komandas

Lai izskaidrotu “Procesa” nozīmi vienkāršākajos vārdos, ir tas, ka tas ir jebkuras jūsu sistēmā esošās lietojumprogrammas vai programmas darbības gadījums. Iespējams, jūs vienlaikus darbināt vairākas lietojumprogrammas, piemēram, pārlūkojat, klausāties terminālī strādājošu mūziku utt. Ar šīm lietojumprogrammām ir saistīti daudzi fona procesi, kurus darbina lietotājs.

Katra lietojumprogramma vai programma, kas darbojas jūsu sistēmā, rada vairākus procesus, kas saistīti ar jūsu vienu lietojumprogrammu. Dažreiz tā var būt problēma, un vienīgā iespēja ir atbrīvoties no šiem procesiem.

Procesa “nogalināšana” ir viena no noderīgām iespējām, ko Linux piedāvā, lai apturētu notiekošos procesus neatkarīgi no tā, vai tas ir priekšplāna process vai fona process. Šajā rakstā mēs pārskatīsim tādas komandas kā nogalināt, pkill un Nogalini visus lai piespiestu aizvērt jebkuru procesu sistēmā.

Kāpēc nogalināt procesu?

Pirms turpināt šo apmācību, ir svarīgi saprast procesa nogalināšanas jēdzienu. Nogalināšana var šķist ļoti brutāls veids, kā izteikt šo jēdzienu, bet tas tēlaini nozīmē procesa piespiedu pārtraukšanu.

Tagad, kāpēc pārtraukt vai izbeigt notiekošo procesu? Ja fonā darbojas vairāki procesi, visi vai daži no tiem var nedarboties un var izraisīt sistēmas nepareizu darbību. Tas aizkavē notiekošos uzdevumus, jo nepareizas darbības process var uz laiku iesaldēt jūsu sistēmu.

Dažreiz šķiet, ka visu nepareizo darbību pārtraukšana ir vienīgā iespēja atjaunot sistēmas darbību. Linux ļauj nogalināt procesu, izmantojot pid vai procesa nosaukums.

Izmantojot pgrep komandu

Lielākā daļa Linux lietotāju ir pazīstami ar grep komandu. The pgrep komandu var izmantot līdzīgās rindās grep.

pgrep komanda, kad tiek izmantota, parāda pid darbības procesam, kā norādīts komandā. Šī komanda būs ļoti noderīga, izmantojot pkill komandu.

Vispārējā sintakse:

pgrep [opcijas] [raksts]

Svarīgas iespējas, kas pieejamas ar pgrep komandu

OpcijaApraksts
-usaraksta procesa ID, kas pieder konkrētam lietotājam
-csaskaitīt saskaņošanas procesu skaitu
-Esuzskaitīt tikai procesu nosaukumus
-auzskaitiet procesa nosaukuma pilnu ceļu

Ļaujiet mums parādīt izmantošanu pgrep komanda, izmantojot piemēru.

pgrep -u gaurav rūķis

Šeit mēs vēlamies redzēt pids procesa gnome, kas pieder lietotājam “gaurav”. Opcija -u ļauj uzskaitīt pids no procesiem, kas pieder konkrētam lietotājam. Šajā gadījumā lietotājs gaurav.

Izvade:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

Turpinot šo apmācību, pgrep komanda palīdzēs mums apstiprināt, vai process ir apturēts vai joprojām darbojas.

Tagad pāriesim uz pkill komanda un tās izpilde.

Izmantojot pkill komandu

Jūs varat izmantot pkill komanda Linux, lai nogalinātu procesu, izmantojot procesa nosaukumu. Pat ja jūs nezināt pid kādu procesu, pat tad jūs varat nogalināt konkrēto procesu, izmantojot pkill komandu.

Procesus var norādīt ar pilnu nosaukumu vai daļēju nosaukumu, izmantojot pkill komandu. Pat ja ievadāt daļēju procesa nosaukumu, pkill komanda saskaņos visus darbojošos procesus ar atbilstošo nosaukumu, ko esat ievadījis komandā.

Sintakse:

pkill [options][process_name_pattern] 

Piemērs:

Ļaujiet mums parādīt procesus, kas pašlaik darbojas, izmantojot tops komandu. Varat arī izmantot ps komandu, lai uzskaitītu procesus.

tops
augšā - 14:24:02 uz augšu 3:12, 1 lietotājs, vidējā slodze: 0,29, 0,48, 0,58 Uzdevumi: kopā 221, 1 skrien, 172 guļ, 0 apstādināts, 1 zombijs % CPU(s): 5.6 as, 1.0 sy , 0.0 ni, 92.9 id, 0.4 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : kopā 3928240, 610456 brīvi, 2233152 lietoti, 1084632 bufetes/kešatmiņas KiB apmaiņa: 3 7 8, 48 kopā 1187268 izdevīgums Mem PID USER PR NI VIRT RES SHR S% CPU% MEM LAIKS + COMMAND 4077 gaurav 20 0 3312128 673480 118360 S 19.6 17.1 15: 13.23 Web Content 3712 gaurav 20 0 3953008 453544 116476 S 4,0 11,5 9: 28.39 MainThread 2010 gaurav 20 0 4084232 111096 45024 S 1.7 2.8 3: 14.85 gnome-shell 1197 root 20 0 1039612 33704 22988 S 1,0 0,9 3: 04,42 xorg 1426 couchdb 20 0 3772396 16908 2520 S 0.7 0.4 1: 50.83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0.7 0.6 0: 06,84 gnome-terminal- 3915 gaurav 20 0 2804900 231524 111228 S 0.7 5.9 0: 54.42 Web Content 4146 gaurav 20 0 3017924 245304 120604 S 0.7 6.2 2: 01.21 Web Content 4417 gaurav 20 0 2964208 234396 119160 S 0.7 6.0 0 :59.90 Tīmekļa saturs 4860 gaurav 20 0 3066800 372920 132544 S 0,7 9,5 0:48,20 Tīmekļa saturs 16007 gaurav 20 0 41944 3780 3116 R.0 .207: top. 

Izmantojot tops komanda terminālī parādīs vairākus procesus. Mēģināsim parādīt procesu ar noteiktu nosaukumu. Mēs izmantosim grep komandu, lai parādītu procesu, kura nosaukums atbilst virknei “mongo”.

augšā | grep -i mongo

Piezīme: Šeit es izmantoju opciju -i, lai padarītu meklēšanu nejutīgu pret reģistru.

Šīs komandas izvade parādīs procesus, kas atbilst nosaukumam “mongo”

 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03.22 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03,25 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03,27 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03,29 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03,31 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03,33 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03,36 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03,38 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03,40 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03,43 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1: 03,45 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03,48 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.3 0.1 1: 03,49 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1: 03,52 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1:03,54 mongods 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1:03,57 mongods

Tagad mēs izmantosim pkill komandu, lai nogalinātu procesu ar nosaukumu “mongo”.

pkill mongo

Šī komanda tagad nogalinās procesa mongo. Mēs varam apstiprināt, vai process ir bijis spiests beigt, izmantojot pgrep komanda, kas parāda pid darbības procesu atbilstoši lietotāja norādītajiem kritērijiem.

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

Šī komanda neatgriezīs vērtību. Tas apstiprina, ka process “mongo” tagad tiek nogalināts, izmantojot pkill komandu.

Opcijas, ko bieži izmanto ar pkill komandu

Lietojot pkill komanda mums būs nepieciešamas minētās opcijas, lai pareizi un bez piepūles izmantotu pkill komandu.

IespējasApraksts
-fsakrīt ar pilniem argumentiem, ieskaitot atstarpes, pēdiņas, īpašās rakstzīmes
-ulai informētu pkill procesu, lai tas atbilstu procesam, ko izpilda norādītais lietotājs
-1atkārtoti ielādē procesu
-9nogalina procesu
-15graciozi pārtrauc procesu

Apskatīsim vēl vienu piemēru pkill komandu, izmantojot -f opciju.

Pašlaik terminālī tiek izpildītas divas komandas, kā parādīts zemāk.

ping bbc.com ping youtube.com

Abus procesus ierosina ping komandu. Tagad pieņemsim, ka mēs vēlamies pārtraukt tikai vienu procesu “ping youtube.com”, tad mums ir jāizmanto -f opcija ar pkill komanda, kas nogalina procesu ar noteiktu nosaukumu, ieskaitot atstarpes un pēdiņas no procesa nosaukuma.

Pavēli:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

Rezultāts:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) baiti datu. 64 baiti no bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 time=30.9 ms 64 baiti no bom12s08-in-f14.1e100.25.0:76ic.25.0. = 117 laiks = 121 ms 64 baiti no bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq = 206 ttl = 117 laiks = 86,5 ms 64 baiti no bom12s08-in-f14.1.6.472 ): icmp_seq=207 ttl=117 laiks=105 ms, pārtraukts gaurav@ubuntu:~$ 

Lūk, “ping youtube.com"process tagad ir nogalināts un "ping bbc.com” joprojām darbojas terminālī.

Gadījumā, ja mēs būtu izmantojuši pkill ping komandu, tas būtu nogalinājis gan ping procesiem, kas ir nevēlami.

Signāli, kas tiek izmantoti ar pkill komandu

pkill liek procesam beigties, nosūtot šim procesam īpašu signālu. Ir trīs iespējamie signāli, kas pkill komanda var nosūtīt procesam atkarībā no komandas, ko lietotājs dod.

Tālāk ir pieejams pieejamo signālu saraksts.

SignālsSpecifikācija
1(HUP)atkārtoti ielādē norādīto procesu
9 (NOGALINĀT)nogalina norādīto procesu
15 (JĒDZIENS)maigi aptur vai pārtrauc norādīto procesu

Šajā apmācībā mēs lielā mērā paļausimies uz NOGALINĀT signāls. Apskatīsim dažus piemērus, lai to labāk izprastu.

Izmantojot pgrep komandu, lai iegūtu pid atbilst vārdam apache.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -KIll apache

VAI varat arī izmantot komandu ar cipariem (piem., 1, 9, 15)

pkill -9 apache

Abas iepriekš parādītās komandas nogalinās procesu apache. Apstiprinot ar pgrep komandu vēlreiz.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

pgrep komanda neatgriež nekādu izvadi, pierāda, ka process apache ir nogalināts.

Secinājums

Šajā apmācībā mēs uzzinājām par pkill komanda un kā tā tiek izmantota procesa nogalināšanai, izmantojot tieši procesa nosaukumu. Mēs arī uzzinājām par pgrep komanda, kas tiek izmantota, lai iegūtu procesa ID jebkuram konkrētam lietotājam. The pgrep komanda ļauj mums pārbaudīt, vai process tiek pārtraukts.