20 praktičnih Linux komandi za upravljanje signalima koje svaki admin treba znati!

U Linux-u, signali predstavljaju mehanizam putem kojeg procesi međusobno komuniciraju ili dobijaju instrukcije od sistema. Njihovo poznavanje je od velike važnosti za razumjevanje rada samih procesa svake Linux distribucije. U ovom članku, donosimo 20 praktičnih Linux komandi za upravljanje signalima koje svaki Linux admin mora da zna.


Šta su signali u Linux-u? (Objašnjenje za sistem administratore)


U Linux operativnom sistemu, signal predstavlja način komunikacije između procesa i sistema. To je jednostavan, ali izuzetno moćan mehanizam kojim se procesima šalju određene instrukcije. Drugim riječima — signal je “poruka” procesu da nešto uradi ili da reaguje na određeni događaj.


Kako funkcionišu signali?


Svaki proces u Linux-u ima svoj PID (Process ID) i može:

  • primati signale

  • slati signale drugim procesima

  • reagovati na signal na definisan način

Kada proces primi signal, može:

ignorisati signal
✔ obraditi ga (npr. sačuvati podatke prije gašenja)
✔ odmah se ugasiti


Kako funkcionišu signali?


Svaki proces u Linux-u ima svoj PID (Process ID) i može:

  • primati signale

  • slati signale drugim procesima

  • reagovati na signal na definisan način

Kada proces primi signal, može:

ignorisati signal
✔ obraditi ga (npr. sačuvati podatke prije gašenja)
✔ odmah se ugasiti



Najvažniji signali koje moraš znati


🔹 SIGTERM (15)

👉 “Zatvori se uredno”

  • omogućava procesu da završi posao

  • preporučeni način gašenja



🔹 SIGKILL (9)

👉 “Odmah se ugasi”

  • ne može se ignorisati

  • proces se momentalno prekida

⚠️ Koristi samo kada SIGTERM ne radi



🔹 SIGHUP (1)

👉 “Reload konfiguraciju”

  • često koriste web serveri

  • ne gasi proces



🔹 SIGINT (2)

👉 “Prekid od korisnika (CTRL+C)”

  • koristi se u terminalu

  • proces može reagovati ili izaći



🔹 SIGSTOP (19)

👉 “Pauziraj proces”

  • proces se zamrzava

  • ne može se ignorisati



🔹 SIGCONT (19)

👉 “Nastavi proces”

  • nastavlja prethodno pauziran proces



1. Lista svih signala


Primjer komande sa sintaksom:

$kill -l

Prikazuje sve dostupne signale u sistemu.



2. Slanje SIGTERM signala (graceful shutdown)


Primjer komande sa sintaksom:

$kill -15 1234

Šalje signal procesu da se uredno ugasi.



3. Forsirano gašenje procesa


Primjer komande sa sintaksom:

$kill -9 6546

Izvršava `SIGKILL` koji momentalno ubija proces.



4. Restart procesa pomoću SIGHUP


Primjer komande sa sintaksom:

$kill -1 4544

Izvršava `SIGHUP` nad procesom čime vrši restart ili ponovo pokretanje samog procesa.



5. Slanje signala po imenu procesa


Primjer komande sa sintaksom:

$pkill sshd

Automatski pronalazi PID procesa `sshd` te isti terminira.



6. Gašenje svih instanci procesa


Primjer komande sa sintaksom:

$killall brave

Ubija sve procese koje je izvršio program `Brave`.



7. Slanje korisničkog signala


Primjer komande sa sintaksom:

$kill -SIGUSR1 6464

Šalje custom signal za aplikaciju.



8. Hvatanje CTRL+C u Bash skripti


Primjer komande sa sintaksom:

$trap "echo 'Prekinuto!'; exit" SIGINT

Hvata signal `SIGINT`.



9. Hvatanje više signala


Primjer komande sa sintaksom:

$trap "echo 'Gasim skriptu'; exit" SIGINT SIGTERM

Skripta hvata više signala.



10. Ignorisanje CTRL+C


Primjer komande sa sintaksom:

$trap “” SIGINT

Sprečava prekid skripte.



11. Resetovanje trap-a


Primjer komande sa sintaksom:

$trap -SIGINT

Vraća default ponašanje.



12. Cleanup pri izlasku iz skripte


Primjer komande sa sintaksom:

$trap "rm -f /tmp/test.txt" EXIT

Automatski briše fajl kad skripta završi.



13. Skripta šalje signal sama sebi


Primjer komande sa sintaksom:

$kill -TERM $$

Skripta šalje sama sebi ‘SIGTERM’ signal.



14. Praćenje signala procesa


Primjer komande sa sintaksom:

$strace -e signal -p 4545

Prati sistemske pozive te filtrira same signale.



15. Pauziranje procesa


Primjer komande sa sintaksom:

$kill -STOP 3678

Šalje ‘SIGSTOP’ te zamrzava proces.



16. Nastavljanje procesa


Primjer komande sa sintaksom:

$kill -CONT 3678

Šalje ‘SIGCONT’ te signal nastavlja tamo gdje je stao.



17. Slanje signala svim procesima korisnika


Primjer komande sa sintaksom:

$pkill -u amar

Gase se svi procesi korisnika ‘amar’, šaljući ‘SIGTERM’ signal.



18. Slanje signala grupi procesa


Primjer komande sa sintaksom:

$kill -TERM -4544

Signal ide svim korisnicima u toj grupi.



19. Provjera da li proces postoji


Primjer komande sa sintaksom:

$kill -0 4464

Ne šalje signal – samo provjerava proces.



20. Reload servisa bez prekida rada


Primjer komande sa sintaksom:

$kill -HUP nginx

Šalje ‘SIGHUP’ svim ‘nginx’ procesima te restartuje konfiguraciju.



🎯 Zaključak članka


Signali u Linux-u predstavljaju jedan od najvažnijih, ali često zanemarenih mehanizama upravljanja procesima.

Kroz ovaj članak naučio si:

šta su signali i kako funkcionišu
✔ kako slati i kontrolisati signale (kill, pkill, killall)
✔ kako hvatanje signala funkcioniše kroz trap
✔ kako koristiti signale u realnim scenarijima
✔ kako pisati robusne Bash skripte koje se pravilno gase

Najvažnija lekcija je da nije isto ugasiti proces i ugasiti ga ispravno.

Upravo korištenjem signala poput SIGTERM i SIGHUP, možeš:

  • izbjeći gubitak podataka

  • omogućiti “zero-downtime” izmjene

  • imati potpunu kontrolu nad sistemom

👉 Razumijevanje signala je jedan od ključnih koraka ka prelasku sa osnovnog Linux znanja na napredni sistem administracijski nivo (LPIC-2 i dalje).

Share:

1 komentar:

KURS LINUX ESSENTIALS

KURS LINUX ESSENTIALS

PRIRUČNIK - ZORIN OS & PRVI KORACI SA LINUXOM

POPULARNI POSTOVI

NAJNOVIJE