Sobes.tech
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.