Giunsa Pagpatay ang Proseso sa Linux Gamit ang Kill, Pkill, ug Killall


Ang Linux Operating System adunay usa ka kill command aron tapuson ang usa ka proseso. Ang mando nagpaposible sa pagpadayon sa pagpadagan sa server nga wala kinahanglana nga mag-reboot pagkahuman sa usa ka dako nga pagbag-o/pag-update. Dinhi moabut ang dako nga gahum sa Linux ug kini usa sa mga hinungdan, ngano nga ang Linux nagdagan sa 96.4% sa mga server, sa planeta.

Ang Kill command nagpadala ug signal, usa ka espesipikong signal sa usa ka proseso nga nagdagan karon. Ang kill command mahimong ipatuman sa daghang paagi, direkta o gikan sa shell script.

[ Basin ganahan ka: Pangitaa ang Top 15 nga Proseso pinaagi sa Memory Usage nga adunay 'top' sa Batch Mode ]

Ang paggamit sa kill command gikan sa /usr/bin naghatag kanimo og dugang nga bahin sa pagpatay sa usa ka proseso pinaagi sa ngalan sa proseso gamit ang pkill.

Ang kasagarang syntax alang sa kill command mao ang:

# kill [signal or option] PID(s)

Alang sa usa ka kill command ang usa ka Signal Name mahimong:

Signal Name		Signal Value			Behaviour

SIGHUP			      1				Hangup
SIGKILL			      9				Kill Signal
SIGTERM			      15			Terminate

Klaro gikan sa pamatasan sa ibabaw, ang SIGTERM mao ang default ug labing luwas nga paagi sa pagpatay sa usa ka proseso. Ang SIGHUP usa ka dili kaayo luwas nga paagi sa pagpatay sa usa ka proseso kaysa SIGTERM. Ang SIGKILL mao ang labing dili luwas nga paagi taliwala sa tulo nga naa sa itaas, aron mapatay ang usa ka proseso nga nagtapos sa usa ka proseso nga wala’y pagtipig.

Aron mapatay ang usa ka proseso, kinahanglan naton mahibal-an ang Proseso ID sa usa ka proseso. Ang Proseso usa ka pananglitan sa usa ka programa. Matag higayon nga magsugod ang usa ka programa, awtomatik nga usa ka talagsaon nga PID ang mamugna alang niana nga proseso.

Matag Proseso sa Linux adunay pid. Ang una nga proseso nga nagsugod kung ang Linux System gi-boot mao ang - init nga proseso, busa gihatagan kini usa ka kantidad nga '1' sa kadaghanan nga mga kaso.

[ Tingali ganahan ka usab: Tanan nga Kinahanglan Nimong Mahibal-an Bahin sa Mga Proseso sa Linux [Komprehensibo nga Giya] ]

Ang Init mao ang master nga proseso ug dili mapatay niining paagiha, nga nagsiguro nga ang master nga proseso dili aksidenteng mapatay. Ang Init nagdesisyon ug nagtugot sa kaugalingon nga patyon, diin ang pagpatay usa lamang ka hangyo alang sa pagsira.

Ilista ang Tanan nga Nagdagan nga Mga Proseso sa Linux

Aron mahibal-an ang tanan nga mga proseso ug katugbang sa ilang gi-assign nga pid, padagana ang mosunod nga ps command.

# 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

Giunsa ang Pag-customize sa naa sa taas nga output gamit ang syntax ingon 'proseso sa pidof'.

# pidof mysqld
1684

Ang laing paagi aron makab-ot ang tumong sa ibabaw mao ang pagsunod sa ubos nga syntax.

# 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

[ Tingali ganahan ka usab: Giunsa Pagpangita Top 15 nga Proseso pinaagi sa Paggamit sa Memorya sa Linux ]

Giunsa Pagpatay ang usa ka Proseso sa Linux

Sa dili pa kita mopadayon ug ipatuman ang usa ka kill command, pipila ka importanteng punto nga angay hinumdoman:

  • Ang usa ka user makapatay sa tanan niyang mga proseso.
  • Ang usa ka user dili makapatay sa proseso sa laing user.
  • Ang user dili makapatay sa mga proseso nga gigamit sa System.
  • Ang usa ka root user mahimong makapatay sa System-level-process ug ang proseso sa bisan kinsang user.

Ang laing paagi sa paghimo sa sama nga function mao ang pagpatuman sa 'pgrep' nga sugo.

# pgrep mysql
3139

Aron mapatay ang proseso sa ibabaw nga PID, gamita ang kill command sama sa gipakita.

kill -9 3139

Ang sugo sa ibabaw mopatay sa proseso nga adunay pid=3139, diin ang PID usa ka Numerical Value sa proseso.

Ang laing paagi sa paghimo sa sama nga function mahimong isulat pag-usab ingon.

# kill -SIGTERM 3139

Susama ang 'kill -9 PID' susama sa 'kill -SIGKILL PID' ug vice-versa.

Giunsa Pagpatay ang usa ka Proseso sa Linux Gamit ang Ngalan sa Proseso

Kinahanglan nga nahibal-an nimo ang ngalan sa proseso, sa wala pa ang pagpatay ug pagsulod sa usa ka sayup nga ngalan sa proseso mahimo’g madaot ka.

# pkill mysqld

Pagpatay labaw sa usa ka proseso sa usa ka higayon.

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

Unsa kaha kung ang usa ka proseso adunay daghang mga higayon ug daghang mga proseso sa bata, kami adunay usa ka mando nga 'kill' o pkill. Kining duha mao lamang ang mga sugo niini nga pamilya, nga nagkuha sa ngalan sa proseso isip argumento sa dapit sa numero sa proseso.

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

Aron mapatay ang tanan nga mysql nga mga higayon kauban ang mga proseso sa bata, gamita ang mando sama sa pagsunod.

# killall mysqld
OR
# pkill mysqld

Mahimo nimo kanunay nga mapamatud-an ang kahimtang sa proseso kung kini nagdagan o wala, gamit ang bisan unsang mga mando sa ubos.

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

Kana lang sa pagkakaron, gikan sa akong kilid. Sa dili madugay makaanhi na usab ako uban ang lain nga Interesante ug Informative nga hilisgutan. Hangtud Unya, magpabilin nga tuned, konektado sa Tecmint, ug himsog. Ayaw kalimti ang paghatag sa imong bililhon nga feedback sa seksyon sa komento.