Junior — Middle
Εξηγήστε τι είναι τα σήματα στο λειτουργικό σύστημα Linux και πώς να εργαστείτε με αυτά
sobes.tech AI
Απάντηση από AI
Στο Linux, τα σήματα είναι ένας μηχανισμός ασύγχρονης ειδοποίησης των διαδικασιών σχετικά με γεγονότα (π.χ., διακοπή, τερματισμός παιδικής διαδικασίας, χρονόμετρο).
Βασικά σημεία:
- Τα σήματα έχουν αριθμητικές ταυτοποιήσεις (π.χ., SIGINT, SIGTERM).
- Μια διαδικασία μπορεί να χειριστεί ένα σήμα με έναν χειριστή σήματος ή να το αγνοήσει.
- Αν το σήμα δεν χειριστεί, εφαρμόζεται η προεπιλεγμένη ενέργεια (π.χ., τερματισμός της διαδικασίας).
Παράδειγμα χειρισμού του σήματος SIGINT (Ctrl+C) σε C:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Λήφθηκε το σήμα %d, κλείσιμο...\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("Δουλεύουμε...\n");
sleep(1);
}
return 0;
}
Στο shell, μπορείτε να στείλετε σήματα με την εντολή kill χρησιμοποιώντας το PID, π.χ., kill -SIGTERM 1234.