Intern
Kaip užbaigti procesą?
sobes.tech AI
Atsakymas iš AI
Linux'e procesą galima užbaigti naudojant komandas kill, pkill arba killall.
1. Naudojant kill:
- Baigia procesą pagal jo Process ID (PID).
- Reikia žinoti PID.
- Signalai:
SIGTERM(numatytasis, 15): Švelnus užbaigimas, leidžia procesui tinkamai užbaigti.SIGKILL(9): Nedelsiant ir priverstinai užbaigia, procesas negali ignoruoti šio signalo.
# sužinoti PID
ps aux | grep <procesas_pavadinimas>
# siųsti `SIGTERM` signalą (numatytasis)
kill <PID>
# siųsti `SIGKILL` signalą
kill -9 <PID>
2. Naudojant pkill:
- Baigia procesus pagal jų pavadinimą ar kitus atributus.
- Nereikia žinoti PID.
- Palaiko modelius.
# užbaigti visus procesus su pavadinimu 'nginx'
pkill nginx
# užbaigti visus procesus, kurių pavadinimas 'myapp' (atsižvelgiant į raidžių didumą)
pkill -i myapp
# siųsti `SIGKILL` signalą procesams su pavadinimu 'firefox'
pkill -9 firefox
3. Naudojant killall:
- Baigia procesus tik pagal jų tikslų pavadinimą.
- Nepalaiko sudėtingų modelių, skirtingai nuo
pkill.
# užbaigti visus procesus su tiksliai pavadinimu 'apache2'
killall apache2
# siųsti `SIGKILL` signalą procesams su pavadinimu 'mysqld'
killall -9 mysqld
Pasirinkimo būdas:
| Komanda | Baigimo metodas | Reikalauja PID | Palaiko modelius |
|---|---|---|---|
kill |
Per PID | Taip | Ne |
pkill |
Per pavadinimą/atributus | Ne | Taip |
killall |
Per tikslų pavadinimą | Ne | Ne |
Dažniausiai rekomenduojama pirmiausia pabandyti užbaigti procesą naudojant SIGTERM (kill <PID>, pkill <pavadinimas>), kad suteiktų jam galimybę išsaugoti duomenis ir tinkamai užbaigti. SIGKILL (kill -9, pkill -9, killall -9) naudoti tik kaip paskutinę priemonę, kai procesas nereaguoja į kitus signalus.