Junior — Middle
Magyarázza el, mik azok a jelek a Linux operációs rendszerben, és hogyan kell velük dolgozni
sobes.tech MI
Válasz az MI-től
Linuxban a jelek aszinkron értesítési mechanizmust jelentenek a folyamatok számára eseményekről (például megszakítás, gyermekfolyamat befejezése, időtúllépés).
Fő pontok:
- A jelek numerikus azonosítókkal rendelkeznek (például SIGINT, SIGTERM).
- Egy folyamat kezelheti a jelet egy jelkezelő segítségével vagy figyelmen kívül hagyhatja.
- Ha a jelet nem kezelik, az alapértelmezett művelet kerül végrehajtásra (például a folyamat befejezése).
Példa a SIGINT (Ctrl+C) jel kezelésére C nyelven:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Jel %d érkezett, leállás...\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("Dolgozunk...\n");
sleep(1);
}
return 0;
}
Shellben a jeleket a kill parancs segítségével lehet küldeni a PID-vel, például kill -SIGTERM 1234.