Junior — Middle
Linux əməliyyat sistemində siqnalların nə olduğunu və onlarla necə işləmək lazım olduğunu izah edin
sobes.tech Süni İntellekt
AI-dan cavab
Linux-da siqnallar, proseslərə hadisələr haqqında asinxron bildiriş mexanizmi kimi xidmət edir (məsələn, kəsinti, uşaq prosesinin tamamlanması, vaxtın bitməsi).
Əsas nöqtələr:
- Siqnallar ədədi identifikatorlara malikdir (məsələn, SIGINT, SIGTERM).
- Proses siqnalı siqnal idarəedicisi vasitəsilə idarə edə bilər və ya görməzdən gələ bilər.
- Əgər siqnal idarə olunmayıbsa, standart hərəkət tətbiq olunur (məsələn, prosesi sonlandırmaq).
C dilində SIGINT (Ctrl+C) siqnalının idarə olunmasına nümunə:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Siqnal %d alındı, bağlanır...\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("İşləyir...\n");
sleep(1);
}
return 0;
}
Shell-də siqnallar PID ilə kill əmri ilə göndərilə bilər, məsələn, kill -SIGTERM 1234.