Linux-besturingssysteem wordt geleverd met: kill commando om een proces te beëindigen. De opdracht maakt het mogelijk om de server te blijven draaien zonder opnieuw op te starten na een grote wijziging/update. Hier komt de grote kracht van Linux en dit is een van de redenen waarom Linux door draait 90% van servers, op de planeet.
Doden commando stuur een signaal, een gespecificeerd signaal om perfecter te zijn voor een proces. Het kill-commando kan op een aantal manieren worden uitgevoerd, rechtstreeks of vanuit een shellscript.
Gebruik makend van doden commando van /usr/bin bieden u een extra functie om een proces doden op procesnaam gebruik makend van pkill.
De algemene syntaxis voor kill commando is:
# kill [signaal of optie] PID('s)
Voor een kill commando een Signaalnaam: zou kunnen:
Signaalnaam:Signaalwaarde:Gedrag SIGHUP 1 Ophangen. SIGKILL 9 Kill-signaal. SIGTERM 15 Beëindigen
Duidelijk uit het bovenstaande gedrag SIGTERM is de standaard en veiligste manier om een proces te beëindigen.
SIGHUP is een minder veilige manier om een proces te doden als SIGTERM. SIGKILL is de meest onveilige manier van de bovenstaande drie, om een proces te beëindigen dat een proces beëindigt zonder op te slaan.Om een proces te stoppen, moeten we de Proces-ID van een proces. EEN Proces is een instantie van een programma. Elke keer dat een programma start, wordt automatisch een uniek PID voor dat proces wordt gegenereerd.
Elk proces in Linux, heb een pid. Het eerste proces dat start wanneer het Linux-systeem wordt opgestart, is - init proces, vandaar dat het een waarde krijgt van '1‘in de meeste gevallen.
Lees ook: Alles wat u moet weten over processen in Linux [Uitgebreide gids]
In het is het masterproces en kan niet op deze manier worden gedood, wat ervoor zorgt dat het masterproces niet per ongeluk wordt gedood. In het beslist en laat zich vermoorden, waarbij doden slechts een verzoek om een shutdown is.
Om alle processen te kennen en dienovereenkomstig hun toegewezen pid, voer het volgende uit: ps commando.
# ps -A
PID TTY-TIJD CMD 1? 00:00:01 begin 2? 00:00:00 kthreadd 3? 00:00:00 migratie/0 4? 00:00:00 ksoftirqd/0 5? 00:00:00 migratie/0 6? 00:00:00 waakhond/0 7? 00:00:01 gebeurtenissen/0 8? 00:00:00 cgroep 9? 00:00:00 khelper 10? 00:00:00 netn 11? 00:00:00 async/mgr 12? 00:00:00 uur 13? 00:00:00 sync_supers 14? 00:00:00 bdi-standaard 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
Hoe zit het met het aanpassen van de bovenstaande uitvoer met syntaxis als 'pidof proces‘.
# pidof mysqld
1684
Een andere manier om het bovenstaande doel te bereiken, is door de onderstaande syntaxis te volgen.
# ps aux | grep mysqld
wortel 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
Lees ook: 30 Handige 'ps Command'-voorbeelden voor Linux-procesbewaking
Voordat we een stap vooruit zetten en een kill commando, enkele belangrijke aandachtspunten:
Een andere manier om dezelfde functie uit te voeren, is door 'pgrep' opdracht.
# pgrep mysql
3139
Om het bovenstaande proces te beëindigen: PID, gebruik het kill-commando zoals weergegeven.
doden -9 3139
Het bovenstaande commando zal het proces doden met pid=3139, waar PID is een Numerieke waarde van proces.
Een andere manier om dezelfde functie uit te voeren, kan worden herschreven als.
# kill -SIGTERM 3139
zo ook ‘kill -9 PID' is vergelijkbaar met 'doden -SIGKILL PID' en vice versa.
U moet op de hoogte zijn van de procesnaam, voordat het doden en invoeren van een verkeerde procesnaam u kan verknallen.
# pkill mysqld
Dood meer dan één proces tegelijk.
# kill PID1 PID2 PID3 of # kill -9 PID1 PID2 PID3 of # kill -SIGKILL PID1 PID2 PID3
Wat als een proces te veel instanties en een aantal onderliggende processen heeft, hebben we een commando 'killall‘. Dit is het enige commando van deze familie, dat procesnaam als argument gebruikt in plaats van procesnummer.
# killall [signaal of optie] Procesnaam
Om iedereen te doden mysql-instanties gebruik, samen met onderliggende processen, de opdracht als volgt.
# killall mysqld
U kunt altijd de status van het proces controleren of het actief is of niet, met behulp van een van de onderstaande opdrachten.
# service mysql-status. # pgrep mysql. # ps -aux | grep mysql
Dat is alles voor nu, van mijn kant. Ik zal hier binnenkort weer zijn met een ander interessant en informatief onderwerp. Tot dan, blijf op de hoogte, verbonden met Tecmin en gezond. Vergeet niet je waardevolle feedback in commentaarsectie.