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).






Odličan članak. Jako dobro odrađeno i razumljivo.
OdgovoriIzbriši