Kuidas tappa protsess Linuxis

How Kill Process Linux



Iga Linuxi operatsioonisüsteemiga on kaasas käsk tappa. Selle tööriista ainus eesmärk on sihtprotsessi lõpetamine. See on võimas tööriist, mis muudab Linuxi üsna mitmekülgseks, eriti serveri- ja ettevõtlusvaldkondades, kus suur muudatus/värskendus võib jõustuda ilma kogu masinat taaskäivitamata. Selles artiklis tutvustan, kuidas protsessi tappa tappa , pkill ja Tapa kõik .

Protsessi tapmine

Protsessi tapmiseks kasutame käputäis tööriistu: tappa , pkill ja Tapa kõik . Kõik nad töötavad põhimõtteliselt samamoodi.







Need tööriistad ei lõpeta protsessi ise. Selle asemel saadavad nad sihtprotsessile või protsessirühmadele määratud signaali. Kui te pole konkreetset signaali määranud, saadetakse vaikesignaalina SIGTERM. Siiski on mitmeid toetatud signaale, näiteks SIGKILL, SIGHUP jne.



Siin on käsu põhistruktuur tappa , pkill ja Tapa kõik .



$tappa <signal_or_options> <PID(s)>
$ pkill<signal_or_options> <protsessi_nimi>
$Tapa kõik <valik> <protsessi_nimi>

Kui vähegi võimalik, on soovitatav kasutada tappa .





Tapa , pkill ja Tapa kõik asukohad

Kill on vaikimisi käsk protsessi lõpetamiseks.



$tappa -abi

See käivitatakse kataloogist /usr /bin.

$mis tappa

Eeliseks on see, et see võimaldab juurdepääsu ka teisele tapmise sarnasele käsule pkill, mis võimaldab protsessi nende nime põhjal lõpetada.

$pkill-abi

$mispkill

Mõned rakendused käitavad sama käivitatava faili mitmeid protsesse. Kui soovite lõpetada mitu sama nimega protsessi, kasutage tööriista killall.

$Tapa kõik -abi

$mis Tapa kõik

Loetlege kõik töötavad protsessid

Kõige esimene ülesanne on tuvastada PID (protsessi identifitseerimisnumber) ja/või protsessi nimi, mille soovite lõpetada. Selle näite puhul kasutan lõpetamiseks sihtprotsessina Firefoxi. Käivitage järgmine käsk, et loetleda kõik süsteemi töötavad protsessid.

$ps -TO

Enamiku ülesannete puhul peame teadma sihtprotsessi PID -d. Kuid teatud olukordades on protsessi nime kasutamine sobivam.

Kui teate sihtprotsessi täpset nime, saate PID -i otse kasutada pidof .

$pidof <protsessi_nimi>

Teine huvitav tööriist sihtprotsessi kohta teabe hankimiseks on pgrep. See on spetsiaalselt selleks otstarbeks loodud.

$pgrep<valik> <protsessi_nimi>

Tapa signaale

Vaatame nüüd signaale, mida tapmistööriistad toetavad. See on tohutu nimekiri. Loomulikult pole need kõik vajalikud igas olukorras. Tegelikult nõuab enamik olukordi vaid käputäis signaale.

Kõigepealt vaatame nimekirja, mis tapab toed.

$tappa -neid

Saadetava signaali määratlemiseks on kaks võimalust. Võite kasutada signaali täielikku nime või selle samaväärset väärtust.

$tappa-<signaal> <PID>

Või

$tappa-<signaali_väärtus> <PID>

Kõige populaarsemad signaalid on SIGHUP (1), SIGKILL (9) ja SIGTERM (15). Üldiselt on SIGTERM sihtprotsessi vaikimisi ja ohutum viis lõpetada.

Pkilli puhul on toetatud signaal sama mis tappa. Killalli puhul on aga toetatud signaalide arv ja signaalide nimed erinevad.

$Tapa kõik -neid

Protsessi tapmine

Protsessi tapmiseks vajame selle sihtprotsessi PID -d. Eeldades, et teil on PID, käivitage selle tapmiseks järgmine käsk.

$tappa <valik> <PID>

Siin saadab kill PID -ile vaikesignaali SIGTERM. Kui soovite lõpetada mitu protsessi, mainige kõiki tühikuga eraldatud PID -sid.

$tappa <valik> <PID_1> <PID_2>

Määratleme, millise signaali soovite sihtmärgile saata.

Kas soovite protsessi lõpetada ainult selle nime kasutades? Kasutage pkilli.

$pkill<valik> <protsessi_nimi>

Mõnel juhul võib konkreetne rakendus käivitada liiga palju protsesse. Kõigi nende PID-de sisestamine on aeganõudev ja väsitav. Sellistes stsenaariumides kasutame killalli tööriista. See on tapmisega üsna sarnane, kuid töötab protsessi nimega.

$Tapa kõik <valik> <protsessi_nimi>

Näiteks Firefoxi käivitamisel käivitab see käputäie protsesse. Kõigi nende korraga tapmiseks käivitage see käsk.

$Tapa kõikfirefox

Kas soovite lõpetada kõik teatud kasutaja all töötavad protsessid? Killall saab ülesandega hakkama, pole probleemi. Olge selle käivitamisel ettevaatlik, kuna see võib süsteemi rikkuda ja muid probleeme tekitada. See ei tööta, kui proovite lõpetada protsessid, mis töötavad teise kasutaja all, kellel on kõrgemad õigused.

$Tapa kõik -u <kasutaja>

Lubade konflikt

Linuxi kasutajahierarhiale omased omadused kehtivad ka siis, kui kavatsete rakenduse lõpetada. Kasutaja ei saa lõpetada kõrgema õigusega töötavaid protsesse, vaid ainult võrdse/madalama õigusega protsesse. Lisaks ei saa kasutaja manipuleerida erinevate kasutajate all töötavate protsessidega.

Näiteks kaaluge käsku jah. Kui seda nimetatakse praeguseks kasutajaks, saab selle tapmise abil hõlpsalt lõpetada.

$tappa jah

Nüüd, mis siis, kui jah all jooksis juur ? Helistamine killile kui praegune kasutaja ei tööta.

Samamoodi, kui protsess käis teise kasutaja all, ei saa te seda teise kasutajakonto kaudu lõpetada.

Lõplikud mõtted

Selles artiklis tutvustati ainult nende käskude põhitõdesid ja tavalist kasutamist. Need tapmistööriistad on võimelised enamaks. Mis tahes tööriista võimete kohta põhjalike teadmiste saamiseks soovitan vaadata man-lehte.

$mees tappa

$meespkill

Nautige!