Wéi Kill de Linux Prozess mat Kill, Pkill, a Killall


Linux Betribssystem kënnt mat engem Kill Kommando fir e Prozess ofzeschléissen. De Kommando mécht et méiglech de Server weider ze lafen ouni de Besoin no enger gréisserer Ännerung/Aktualiséierung nei ze starten. Hei kënnt déi grouss Kraaft vu Linux an dëst ass ee vun de Grënn firwat Linux op 96,4% vun de Serveren um Planéit leeft.

Kill Kommando schéckt e Signal, e spezifizéierte Signal un engem aktuellen Prozess. De Kill Kommando kann op e puer Weeër ausgefouert ginn, direkt oder aus engem Shell-Skript.

[Dir kënnt och gär hunn: Fannt Top 15 Prozesser duerch Memory Usage mat 'Top' am Batch Modus]

Benotzt Kill Kommando vum /usr/bin bitt Iech e puer extra Feature fir e Prozess mam Prozessnumm ëmzebréngen mat pkill.

Déi gemeinsam Syntax fir Kill Kommando ass:

# kill [signal or option] PID(s)

Fir e Kill Kommando kéint e Signal Numm sinn:

Signal Name		Signal Value			Behaviour

SIGHUP			      1				Hangup
SIGKILL			      9				Kill Signal
SIGTERM			      15			Terminate

Kloer aus dem Verhalen hei uewen ass SIGTERM de Standard a sécherste Wee fir e Prozess ëmzebréngen. SIGHUP ass e manner séchere Wee fir e Prozess ëmzebréngen wéi SIGTERM. SIGKILL ass deen onsécherste Wee vun den dräi uewendriwwer, fir e Prozess ëmzebréngen deen e Prozess ofschléisst ouni ze spueren.

Fir e Prozess ëmzebréngen, musse mir d'Prozess ID vun engem Prozess wëssen. E Prozess ass eng Instanz vun engem Programm. All Kéier wann e Programm ufänkt, gëtt automatesch eng eenzegaarteg PID fir dee Prozess generéiert.

All Prozess am Linux huet e Pid. Den éischte Prozess dee ufänkt wann de Linux System bootéiert ass den - init Prozess, dofir ass et e Wäert vun '1' an de meeschte Fäll zougewisen.

[ Dir kënnt och gär hunn: Alles wat Dir braucht iwwer Prozesser am Linux ze wëssen [Comprehensive Guide] ]

Init ass de Masterprozess a kann net op dës Manéier ëmbruecht ginn, wat garantéiert datt de Masterprozess net zoufälleg ëmbruecht gëtt. Init entscheet a léisst sech ëmbréngen, wou ëmbréngen just eng Ufro fir e Shutdown ass.

Lëscht All Lafen Linux Prozesser

Fir all d'Prozesser ze kennen an entspriechend hir zougewisen Pid, fuert de folgende ps Kommando.

# ps -A
PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 migration/0
    6 ?        00:00:00 watchdog/0
    7 ?        00:00:01 events/0
    8 ?        00:00:00 cgroup
    9 ?        00:00:00 khelper
   10 ?        00:00:00 netns
   11 ?        00:00:00 async/mgr
   12 ?        00:00:00 pm
   13 ?        00:00:00 sync_supers
   14 ?        00:00:00 bdi-default
   15 ?        00:00:00 kintegrityd/0
   16 ?        00:00:00 kblockd/0
   17 ?        00:00:00 kacpid
   18 ?        00:00:00 kacpi_notify
   19 ?        00:00:00 kacpi_hotplug
   20 ?        00:00:00 ata/0
   21 ?        00:00:00 ata_aux
   22 ?        00:00:00 ksuspend_usbd

Wéi wier et mat dem uewe genannten Output ze personaliséieren mat Syntax als 'Pidof Prozess'.

# pidof mysqld
1684

En anere Wee fir dat uewe genannten Zil z'erreechen ass déi ënnescht Syntax ze verfollegen.

# ps aux | grep mysqld
root      1582  0.0  0.0   5116  1408 ?        S    09:49   0:00 
/bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql 
--socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid 
--basedir=/usr --user=mysql

mysql     1684  0.1  0.5 136884 21844 ?        Sl   09:49   1:09 
/usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql 
--log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid 
--socket=/var/lib/mysql/mysql.sock

root     20844  0.0  0.0   4356   740 pts/0    S+   21:39   
0:00 grep mysqld

[ Dir kënnt och gär hunn: Wéi fannt Dir Top 15 Prozesser duerch Memory Usage am Linux ]

Wéi Kill e Prozess am Linux

Ier mir viru goen an e Kill Kommando ausféieren, e puer wichteg Punkte fir ze notéieren:

  • E Benotzer kann all seng Prozesser ëmbréngen.
  • E Benotzer kann de Prozess vun engem anere Benotzer net ëmbréngen.
  • E Benotzer kann d'Prozesser net ëmbréngen, déi de System benotzt.
  • E Root Benotzer kann System-Niveau-Prozess an de Prozess vun all Benotzer ëmbréngen.

Eng aner Manéier fir déiselwecht Funktioun auszeféieren ass de 'pgrep' Kommando auszeféieren.

# pgrep mysql
3139

Fir den uewe genannte Prozess PID ëmzebréngen, benotzt de Kill Kommando wéi gewisen.

kill -9 3139

Deen uewe genannte Kommando wäert de Prozess ëmbréngen mat pid = 3139, wou PID en numeresche Wäert vum Prozess ass.

Aner Manéier déi selwecht Funktioun ze Leeschtunge kann iwwerschriwwe ginn als.

# kill -SIGTERM 3139

Ähnlech 'kill -9 PID'ass ähnlech wéi 'kill -SIGKILL PID'a vice-versa.

Wéi ee Prozess am Linux ëmzebréngen mam Prozessnumm

Dir musst de Prozessnumm bewosst sinn, ier Dir ëmbréngen an e falsche Prozessnumm aginn, kënnt Dir schrauwen.

# pkill mysqld

Kill méi wéi ee Prozess gläichzäiteg.

# kill PID1 PID2 PID3
or
# kill -9 PID1 PID2 PID3
or
# kill -SIGKILL PID1 PID2 PID3

Wat wann e Prozess ze vill Instanzen an eng Zuel vu Kannerprozesser huet, hu mir e Kommando 'killall' oder pkill. Dës zwee sinn déi eenzeg Kommandoen vun dëser Famill, déi Prozessnumm als Argument an der Plaz vun der Prozessnummer hëlt.

# killall [signal or option] Process Name
Or
# pkill Process Name

Fir all mysql Instanzen zesumme mat Kannerprozesser ëmzebréngen, benotzt de Kommando wéi follegt.

# killall mysqld
OR
# pkill mysqld

Dir kënnt ëmmer de Status vum Prozess verifizéieren ob et leeft oder net, mat engem vun den ënnendrënner Kommandoen.

# service mysql status
OR
# systemctl status mysql
# pgrep mysql
# ps -aux | grep mysql

Dat ass alles fir de Moment, vu menger Säit. Ech wäert geschwënn erëm hei mat engem aneren interessanten an informativen Thema sinn. Bis dann, bleift ofgeschloss, verbonne mat Tecmint, a gesond. Vergiesst net Äre wäertvolle Feedback an der Kommentarsektioun ze ginn.