Sobes.tech
Junior — Middle

Linux işletim sisteminde sinyallerin ne olduğunu ve bunlarla nasıl çalışılacağını açıklayın

sobes.tech yapay zeka

AI'dan gelen yanıt

Linux'ta sinyaller, süreçlere olaylar hakkında eşzamansız bildirim mekanizmasıdır (örneğin, kesinti, çocuk sürecin sonlandırılması, zaman aşımı).

Ana noktalar:

  • Sinyaller sayısal tanımlayıcılara sahiptir (örneğin, SIGINT, SIGTERM).
  • Bir süreç, bir sinyal işleyici kullanarak sinyali işleyebilir veya görmezden gelebilir.
  • Eğer sinyal işlenmezse, varsayılan işlem uygulanır (örneğin, süreci sonlandırmak).

C dilinde SIGINT (Ctrl+C) sinyalinin işlenmesine örnek:

#include <signal.h>
#include <stdio.h>
#include <unistd.h>

void handler(int signum) {
    printf("Sinyal %d alındı, kapanıyor...\n", signum);
    _exit(0);
}

int main() {
    signal(SIGINT, handler);
    while(1) {
        printf("Çalışıyoruz...\n");
        sleep(1);
    }
    return 0;
}

Shell'de, kill komutu ile PID kullanılarak sinyaller gönderilebilir, örneğin kill -SIGTERM 1234.