Sobes.tech
Junior — Middle

Hogyan történik a folyamatirányítási jel küldése az operációs rendszerben?

sobes.tech MI

Válasz az MI-től

Unix/Linux alapú operációs rendszerekben egy folyamatnak szignált a kill() rendszerhívással lehet küldeni. Ez a hívás lehetővé teszi, hogy egy adott szignált (például SIGINT, SIGTERM, SIGKILL) küldjünk egy folyamatnak a PID azonosítója segítségével.

Példa C nyelven:

#include <signal.h>
#include <unistd.h>

int main() {
    pid_t pid = 1234; // A folyamat PID-je, amelynek szignált küldünk
    int sig = SIGTERM; // leállítási szignál
    int result = kill(pid, sig);
    if (result == 0) {
        // Sikeresen küldve a szignál
    } else {
        // Hiba a szignál küldésekor
    }
    return 0;
}

A kill()-en kívül léteznek más módszerek is, például a kill parancs a terminálban vagy a raise() függvények, amelyek saját magunknak küldenek szignált. A szignálokat a folyamatok irányítására használják: megszakítás, megállítás, folytatás, befejezés stb.