Kā nogalināt procesu Linux

How Kill Process Linux



Katrai Linux operētājsistēmai ir pievienota nogalināšanas komanda. Šī rīka vienīgais mērķis ir izbeigt mērķa procesu. Tas ir spēcīgs rīks, kas padara Linux diezgan universālu, īpaši serveru un uzņēmumu jomās, kur var tikt ieviestas būtiskas izmaiņas/atjauninājumi, nerestartējot visu mašīnu. Šajā rakstā es parādīšu, kā nogalināt procesu, izmantojot nogalināt , pkill un Nogalini visus .

Nogalināt procesu

Lai nogalinātu procesu, mēs izmantosim nedaudz rīku: nogalināt , pkill , un Nogalini visus . Visi no tiem principā darbojas vienādi.







Šie rīki nebeidz procesu paši. Tā vietā viņi nosūta norādīto signālu mērķa procesam vai procesu grupām. Ja neesat norādījis nevienu konkrētu signālu, SIGTERM tiek nosūtīts kā noklusējuma signāls. Tomēr ir vairāki atbalstīti signāli, piemēram, SIGKILL, SIGHUP utt.



Šeit ir pamata komandu struktūra nogalināt , pkill un Nogalini visus .



$nogalināt <signal_or_options> <PID(s)>
$ pkill<signal_or_options> <process_name>
$Nogalini visus <iespēja> <process_name>

Kad vien iespējams, ieteicams lietot nogalināt .





Nogalināt , pkill un Nogalini visus atrašanās vietas

Nogalināt ir noklusējuma komanda procesa pārtraukšanai.



$nogalināt -palīdzēt

Tas tiek palaists no direktorija /usr /bin.

$kuru nogalināt

Ieguvums ir tas, ka tas arī ļauj piekļūt pkill, citai komandai, kas līdzīga kill, kas ļauj pārtraukt procesu, pamatojoties uz viņu vārdu.

$pkill-palīdzēt

$kurupkill

Dažās lietotnēs tiek izpildīti vairāki vienas izpildāmās programmas procesi. Ja vēlaties pārtraukt vairākus procesus ar tādu pašu nosaukumu, izmantojiet rīku killall.

$Nogalini visus -palīdzēt

$kuru Nogalini visus

Tiek uzskaitīti visi procesi

Pirmais uzdevums ir identificēt PID (procesa identifikācijas numuru) un/vai procesa nosaukumu, kuru vēlaties pārtraukt. Šajā piemērā es izmantošu Firefox kā mērķa procesu, lai pārtrauktu. Izpildiet šo komandu, lai uzskaitītu visus sistēmā esošos procesus.

$ps -TO

Lielākajai daļai uzdevumu mums ir jāzina mērķa procesa PID. Tomēr noteiktās situācijās piemērotāks ir izmantot procesa nosaukumu.

Ja zināt precīzu mērķa procesa nosaukumu, varat tieši iegūt PID, izmantojot pidof .

$pidof <process_name>

Vēl viens interesants rīks informācijas iegūšanai par mērķa procesu ir pgrep. Tas ir īpaši izstrādāts šim nolūkam.

$pgrep<iespēja> <process_name>

Nogalināt signālus

Tagad apskatīsim signālus, kurus atbalsta nogalināšanas rīki. Tas ir milzīgs saraksts. Protams, ne visi no tiem ir nepieciešami katrā atsevišķā situācijā. Patiesībā lielākajai daļai situāciju ir nepieciešami tikai daži signāli.

Vispirms apskatīsim sarakstu, kas nogalina balstus.

$nogalināt -viņi

Ir divi veidi, kā definēt, kādu signālu vēlaties nosūtīt. Varat izmantot pilnu signāla nosaukumu vai tā ekvivalento vērtību.

$nogalināt-<signāls> <PID>

Vai

$nogalināt-<signāla_vērtība> <PID>

Populārākie signāli ir SIGHUP (1), SIGKILL (9) un SIGTERM (15). Parasti SIGTERM ir noklusējuma un drošākais veids, kā pārtraukt mērķa procesu.

Pkill gadījumā atbalstītais signāls ir tāds pats kā kill. Tomēr killall gadījumā atbalstīto signālu skaits un signālu nosaukumi ir atšķirīgi.

$Nogalini visus -viņi

Nogalināt procesu

Lai nogalinātu procesu, mums ir nepieciešams šī mērķa procesa PID. Pieņemot, ka jums ir PID, palaidiet šādu komandu, lai to nogalinātu.

$nogalināt <iespēja> <PID>

Šeit Kill nosūtīs PID (-iem) noklusējuma signālu SIGTERM. Ja vēlaties pārtraukt vairākus procesus, miniet visus PID, kas atdalīti ar atstarpi.

$nogalināt <iespēja> <PID_1> <PID_2>

Norādīsim, kādu signālu vēlaties nosūtīt mērķim.

Vai vēlaties pārtraukt procesu, izmantojot tikai tā nosaukumu? Izmantojiet pkill.

$pkill<iespēja> <process_name>

Dažos gadījumos konkrētā lietojumprogrammā var darboties pārāk daudz procesu. Visu šo PID ievadīšana ir laikietilpīga un nogurdinoša. Šādos scenārijos mēs izmantosim killall rīku. Tas ir diezgan līdzīgs nogalināšanai, bet tas darbojas ar procesa nosaukumu.

$Nogalini visus <iespēja> <process_name>

Piemēram, palaižot Firefox, tas sāk nedaudz procesu. Lai nogalinātu visus uzreiz, izpildiet šo komandu.

$Nogalini visusfirefox

Vai vēlaties pārtraukt visus procesus, kas darbojas saskaņā ar noteiktu lietotāju? Killall var paveikt darbu, bez problēmām. Esiet piesardzīgs, palaižot šo, jo tas var sabojāt sistēmu un radīt citas problēmas. Tas nedarbosies, ja mēģināsit pārtraukt procesus, kas darbojas citam lietotājam ar augstākām tiesībām.

$Nogalini visus -u <lietotājs>

Atļauju konflikts

Linux lietotāju hierarhijas raksturīgās iezīmes attiecas arī uz gadījumiem, kad gatavojaties pārtraukt lietojumprogrammas darbību. Lietotājs nevar pārtraukt procesus, kas darbojas ar augstākām privilēģijām, tikai procesus ar vienādām/zemākām tiesībām. Turklāt lietotājs nevar manipulēt ar procesiem, kas darbojas cita lietotāja pakļautībā.

Piemēram, ņemsim vērā komandu jā. Ja to sauc par pašreizējo lietotāju, to var viegli pārtraukt, izmantojot kill.

$nogalināt

Tagad, ja būtu skrēja zem sakne ? Zvanīšana nogalināt, jo pašreizējais lietotājs nedarbosies.

Tāpat, ja process noritēja cita lietotāja pakļautībā, to nevar pārtraukt no cita lietotāja konta.

Galīgās domas

Šajā rakstā tika parādīti tikai šo komandu pamati un parastais lietojums. Šie nogalināšanas rīki spēj vairāk. Lai iegūtu padziļinātas zināšanas par jebkura rīka spējām, iesaku apskatīt manu lapu.

$cilvēks nogalināt

$cilvēkspkill

Izbaudi!