Junior — Middle
Izskaidrojiet, kas ir signāli Linux operētājsistēmā un kā ar tiem strādāt
sobes.tech AI
Atbilde no AI
Linux sistēmās signāli ir mehānisms asenhronai paziņot procesiem par notikumiem (piemēram, pārtraukšanu, bērna procesa pabeigšanu, laika beigām).
Galvenie punkti:
- Signāliem ir skaitliskas identifikācijas (piemēram, SIGINT, SIGTERM).
- Procesam ir iespēja apstrādāt signālu ar signāla apstrādātāju vai ignorēt to.
- Ja signāls netiek apstrādāts, tiek piemērota noklusējuma darbība (piemēram, procesa pabeigšana).
C valodā SIGINT (Ctrl+C) signāla apstrādes piemērs:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Saņemts signāls %d, pārtraukšana...\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("Strādājam...\n");
sleep(1);
}
return 0;
}
Shell'ā signālus var nosūtīt ar komandu kill ar PID, piemēram, kill -SIGTERM 1234.