Sobes.tech
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() για την αποστολή σήματος στον εαυτό του. Τα σήματα χρησιμοποιούνται για τον έλεγχο της διαδικασίας: διακοπή, παύση, συνέχιση, τερματισμός κ.λπ.