Junior — Middle
Linux operatsion tizimida signallar nima ekanligini va ular bilan qanday ishlashni tushuntiring
sobes.tech AI
AIdan javob
Linuxda signallar, proseslarga voqealar haqida asinxron xabar berish mexanizmi (masalan, uzilish, bolalar jarayonining yakunlanishi, timeout).
Asosiy nuqtalar:
- Signallar raqamli identifikatorlarga ega (masalan, SIGINT, SIGTERM).
- Jarayon signalni signal handler yordamida yoki uni ignor qilish orqali boshqarishi mumkin.
- Agar signal boshqarilmasa, standart harakat qo‘llaniladi (masalan, jarayonni yakunlash).
C tilida SIGINT (Ctrl+C) signali bilan ishlash misoli:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Signali %d qabul qilindi, yopilmoqda...\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("Ishlamoqda...\n");
sleep(1);
}
return 0;
}
Shellda signallarni PID bilan kill komandasi yordamida yuborish mumkin, masalan, kill -SIGTERM 1234.