Kill, Pkill we Killall ulanyp Linux prosessini nädip öldürmeli
Linux operasiýa ulgamy, bir prosesi bes etmek üçin öldürmek buýrugy bilen gelýär. Buýruk, düýpli üýtgeşme/täzelenmeden soň gaýtadan açmak zerurlygy bolmazdan serweri işletmegi dowam etdirmäge mümkinçilik berýär. Linux-yň uly güýji gelýär we Linux-yň planetadaky serwerleriň 96,4% -inde işlemeginiň sebäplerinden biri.
Kill buýrugy häzirki işleýän prosese signal, kesgitlenen signal iberýär. Öldürmek buýrugy gönüden-göni ýa-da gabyk skriptinden birnäçe usul bilen ýerine ýetirilip bilner.
[Şeýle hem halamagyňyz mümkin: Batch rejesinde “ýokarky” bilen ýat ulanylyşy boýunça iň gowy 15 prosesi tapyň]
/ Usr/bin-den kill buýrugyny ulanmak, pkill ulanyp, prosessiň ady bilen bir prosesi öldürmek üçin goşmaça aýratynlyk berýär.
Öldürmek buýrugy üçin umumy sintaksis:
# kill [signal or option] PID(s)
Öldürmek buýrugy üçin Signal ady bolup biler:
Signal Name Signal Value Behaviour SIGHUP 1 Hangup SIGKILL 9 Kill Signal SIGTERM 15 Terminate
Aboveokardaky özüni alyp barşyndan SIGTERM bir prosesi öldürmegiň esasy we iň ygtybarly usulydygy aýdyňdyr. SIGHUP, SIGTERM-den has ygtybarly bir usul. SIGKILL, ýokardaky üçüsiniň arasynda iň amatly usul, tygşytlamazdan bir prosesi bes edýän prosesi öldürmek.
Bir prosesi öldürmek üçin bir prosesiň Prosess ID-ni bilmeli. Amal programmanyň mysalydyr. Her gezek bir programma başlanda, bu amal üçin awtomatiki usulda özboluşly PID döredilýär.
Linux-daky her bir prosesiň pidasy bar. Linux ulgamy ýüklenende başlaýan ilkinji proses - init prosesi, şonuň üçin köp halatlarda oňa “1” bahasy berilýär.
[Şeýle hem halamagyňyz mümkin: Linux-daky prosesler barada bilmeli zatlaryňyz [Giňişleýin gollanma]]
Init baş prosesdir we esasy ýoluň tötänleýin öldürilmezligini üpjün edýän bu ýol bilen öldürilip bilinmez. Init karar berýär we özüni öldürmäge rugsat berýär, bu ýerde öldürmek diňe ýapmak haýyşydyr.
Linuxhli işleýän Linux amallaryny sanaň
Processeshli amallary we degişlilikde berlen pidleri bilmek üçin aşakdaky ps buýrugyny işlediň.
# 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
“Pidof prosesi” hökmünde sintaksis ulanyp, ýokardaky çykyşy özleşdirmek hakda.
# pidof mysqld
1684
Aboveokardaky maksada ýetmegiň ýene bir usuly, aşakdaky sintaksisden ugur almakdyr.
# 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
[Şeýle hem halap bilersiňiz: Linux-da ýadyň ulanylyşy boýunça iň gowy 15 prosesi nädip tapmaly]
Linux-da bir prosesi nädip öldürmeli
Öňe gitmek we öldürmek buýrugyny ýerine ýetirmezden ozal bellemeli käbir möhüm nokatlar:
- Ulanyjy ähli amallaryny öldürip biler.
- Ulanyjy başga bir ulanyjynyň amalyny öldürip bilmez.
- Ulanyjy ulgamyň ulanýan amallaryny öldürip bilmez.
- Kök ulanyjy ulgam derejesindäki prosesi we islendik ulanyjynyň işini öldürip biler.
Şol bir funksiýany ýerine ýetirmegiň başga bir usuly, pgrep buýrugyny ýerine ýetirmekdir.
# pgrep mysql
3139
Aboveokardaky prosesi PID-i öldürmek üçin görkezilişi ýaly öldürmek buýrugyny ulanyň.
kill -9 3139
Aboveokardaky buýruk, pID=3139 bolan prosesi öldürer, bu ýerde PID amalyň san bahasydyr.
Şol bir funksiýany ýerine ýetirmegiň başga bir usuly ýaly täzeden ýazylyp bilner.
# kill -SIGTERM 3139
Edil şonuň ýaly, öldürmek -9 PID öldürmek -SIGKILL PID -e we tersine.
Linux-da prosessiň adyny ulanyp nädip öldürmeli
Öldürmezden we nädogry prosesiň adyny girizmezden ozal, prosesiň adyndan habarly bolmalysyňyz.
# pkill mysqld
Bir gezekde birden köp prosesi öldüriň.
# kill PID1 PID2 PID3 or # kill -9 PID1 PID2 PID3 or # kill -SIGKILL PID1 PID2 PID3
Bir prosesiň gaty köp mysallary we birnäçe çaga prosesi bar bolsa, bizde öldürmek ýa-da pkill buýrugy bar. Bu ikisi, bu maşgalanyň ýeke-täk buýruklary bolup, amal belgisiniň ýerine argument adyny alýar.
# killall [signal or option] Process Name Or # pkill Process Name
Çaga amallary bilen birlikde ähli mysql mysallaryny öldürmek üçin buýrugy aşakdaky ýaly ulanyň.
# killall mysqld OR # pkill mysqld
Aşakdaky buýruklaryň haýsydyr birini ulanyp, işleýändigini ýa-da işlemeýändigini elmydama barlap bilersiňiz.
# service mysql status OR # systemctl status mysql # pgrep mysql # ps -aux | grep mysql
Bu häzirlikçe, meniň tarapymdan. Soonakynda ýene-de bir gyzykly we maglumat beriji mowzuk bilen gelerin. Şoňa çenli, “Tecmint” -e birikdiriň we sagdyn boluň. Teswirler bölüminde gymmatly pikirleriňizi bermegi ýatdan çykarmaň.