Junior — Middle
Πώς γίνεται η αποστολή σήματος ελέγχου της διαδικασίας στο λειτουργικό σύστημα;
sobes.tech AI
Απάντηση από AI
Στα λειτουργικά συστήματα βασισμένα σε Unix/Linux, η αποστολή σήματος σε μια διαδικασία γίνεται μέσω της κλήσης συστήματος kill(). Αυτή η κλήση επιτρέπει την αποστολή ενός συγκεκριμένου σήματος (π.χ., SIGINT, SIGTERM, SIGKILL) σε μια διαδικασία μέσω του αναγνωριστικού της PID.
Παράδειγμα χρήσης σε C:
#include <signal.h>
#include <unistd.h>
int main() {
pid_t pid = 1234; // PID της διαδικασίας στην οποία αποστέλλουμε το σήμα
int sig = SIGTERM; // σήμα τερματισμού
int result = kill(pid, sig);
if (result == 0) {
// το σήμα στάλθηκε με επιτυχία
} else {
// σφάλμα κατά την αποστολή του σήματος
}
return 0;
}
Εκτός από το kill(), υπάρχουν και άλλοι τρόποι, όπως η εντολή kill στο τερματικό ή οι συναρτήσεις raise() για την αποστολή σήματος στον εαυτό του. Τα σήματα χρησιμοποιούνται για τον έλεγχο της διαδικασίας: διακοπή, παύση, συνέχιση, τερματισμός κ.λπ.