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