Protsessi leidmine ja lõpetamine Linuxis — ps, kill, pkill
Protsessi lõpetamiseks Linuxis leia kõigepealt selle PID (identifikaator) käskudega ps või pgrep ja saada seejärel signaal käsuga kill. Nime järgi lõpetamiseks sobivad pkill ja killall. Vaatame järjekorras.
Samm 1. Leia protsess
Kuva kõik protsessid ja filtreeri nime järgi käsuga grep:
ps aux | grep nginx
Väljundis on teine veerg PID. Otsesem viis on pgrep, mis tagastab identifikaatorid kohe:
pgrep -a nginx
Lipp -a näitab PID-i koos käsureaga.
Kui protsess hoiab võrgu porti, leia see pordi järgi:
sudo ss -ltnp | grep :80
Samm 2. Lõpeta protsess PID-i järgi
Standardkäsk on kill. Vaikimisi saadab see signaali TERM (15) — viisaka palve lõpetada, andes protsessile võimaluse andmed salvestada:
kill 12345
Kui protsess ei reageeri, saada signaal KILL (9) — sundlõpetamine ilma salvestamise võimaluseta:
kill -9 12345
Proovi alati kõigepealt tavalist kill-i ja alles siis, kui protsess on kinni jooksnud, kasuta -9.
Nime järgi lõpetamine: pkill ja killall
PID-i ei pea tingimata otsima — protsessi saab lõpetada nime järgi.
pkill töötab nime osalise vaste alusel:
pkill nginx
pkill -9 nginx
killall lõpetab kõik täpselt selle nimega protsessid:
killall nginx
Ole ettevaatlik: pkill php lõpetab kõik protsessid, mille nimes on php.
Lõpetamine htopis
Graafiline viis on htop:
htop
Leia protsess (otsinguks klahv F3), vali see nooltega ja vajuta F9. Vali signaal (tavaliselt SIGTERM, seejärel SIGKILL) ja kinnita.
Peamised signaalid
| Signaal | Number | Tegevus |
|---|---|---|
| SIGTERM | 15 | Pehme lõpetamine (vaikimisi) |
| SIGKILL | 9 | Sundlõpetamine |
| SIGHUP | 1 | Konfiguratsiooni uuesti lugemine / restart |
| SIGINT | 2 | Katkestus (nagu Ctrl+C) |
Teenuse konfiguratsiooni saab peatamata sageli uuesti laadida nii:
kill -HUP 12345
Süsteemi koormava protsessi leidmine
Kõige ahnema protsessi leidmine CPU järgi:
ps aux --sort=-%cpu | head
Mälu järgi:
ps aux --sort=-%mem | head
Korduma kippuvad küsimused
Mille poolest erineb kill -15 käsust kill -9?
-15 (TERM) palub protsessil korrektselt lõpetada: sulgeda failid, salvestada andmed. -9 (KILL) tapab silmapilkselt ja protsess ei jõua midagi salvestada. Alusta alati -15-st.
Protsess ei lõpe isegi -9-ga. Mida teha?
Nii juhtub protsessidega olekus D (katkematu uni, tavaliselt ketta ootamine). Neid ei saa tappa enne, kui sisend-väljundoperatsioon lõpeb; vahel aitab ainult taaskäivitus.
Kuidas lõpetada protsess, kui tean ainult porti?
Leia PID käsuga sudo ss -ltnp | grep :PORT ja seejärel kill PID. Või ühe käsuga: sudo fuser -k 80/tcp.
Kas killall kasutamine on ohtlik?
See lõpetab kõik antud nimega protsessid. Kontrolli nimekirja eelnevalt käsuga pgrep -a nimi, et mitte liigset peatada.
Kokkuvõte
Paar ps/pgrep otsimiseks ja kill/pkill lõpetamiseks katab peaaegu kõik protsessihalduse ülesanded. Reegel on lihtne: kõigepealt pehme TERM ja alles kinni jooksnud protsesside puhul KILL.
Haldad oma serverit? Võta Linuxi VPS, vali pakett jaotisest VPS-i rent või telli Serverite haldus, kui seire usaldad pigem spetsialistidele.