Lehallgatás felhasználói jelek menni

Lehallgatás felhasználói jelek lépés

Jelek korlátozott eszközök közötti kommunikáció folyamatokat. Felhasznált jeleket megszakítja a program végrehajtását és a válasz adott kezelő. Például, ha megnyomja a Ctrl + C terminális leállnak a programot, ezért elküldi SIGINT jel. Általában az előállítási eljárás SIGINT jel megölik, de néhány folyamatok elkapjam a jelet, és figyelmen kívül hagyja azt, vagy előkészítő munkába való kilépés előtt. Tovább meglehetősen jól ismert SIGKILL jel sokkal „brutális”. Ha a folyamat veszi ezt a jelet, akkor azonnal leáll, és nincs módja annak, hogy figyelmen kívül hagyja ezt a jelet. Annyi különböző jelek, ezek leírása megtalálható a Wikipedia.

Küldés jeleket a folyamat lehet ölni parancs . Itt PID - ez a folyamat azonosítója. Például, hogy töltsenek ki egy bizonyos folyamat, akkor küldjön egy SIGKILL jel parancs használatával ölni -KILL . Az egyszerűség kedvéért, akkor a pkill parancsot, és ahelyett, hogy egy azonosítót adja meg a folyamat neve.

Ebben a bejegyzésben fogunk beszélni a konkrét felhasználói jelek USR1 és USR2. Mindkét jelek vannak teljesen az Ön rendelkezésére, és megadhatjuk a rakodók. Megmutatom néhány népszerű módja, hogy használja őket. Minden példákat nyelvén írt a Go, de az alapötlet nem függ a kiválasztott nyelv és lehet realizovanna semmit.

lehallgatás jelek

A Go, akkor elfogják a jelek használatával signal.Notify funkció (chan os.Signal, syscall.Signal). Ez a függvény a csatornát, és azt mondja, ha van perehvat jelet. Amikor a program egy jelet vesz, a csatorna elküldte os.Signal értéke. Nagyjából így néz ki:

Most már tudjuk, hogyan, hogy elkapjam a jeleket, és határozzuk meg a saját rakodók.

Váltás naplózási mód.

Tegyük fel, hogy van egy web-alapú alkalmazás, ami persze, írja naplók. Tedd a napló nagyon teljes és részletes nem tekinthető egy nagyon jó ötlet, mert a naplófájlok növekedni fog azonnal. Ezért jön különböző naplózási szintet (INFO, DEBUG, WARN, stb.) Futtatja az alkalmazást fel kell tüntetni a szinten, de ha azt szeretnénk, otdebazhit mi lehet a probléma, akkor újra kell indítania az alkalmazást jelző másik naplózás szintjét.

Az egyszerűség kedvéért tegyük fel, hogy csak két naplózási szintet (csendes és részletes). Az alábbi kód átvált a naplózási szintet, amint folyamat lesz USR1 jelet.

Emlékeztetem Önöket, hogy meg kell küldeni a jelet, hogy végrehajtsa a parancsot:

Ebben a példában a bináris program neve jeleket.

Olvasás konfigurációs fájlokat.

Egy másik kényelmes lehetőséget jeleket használja ezt a túlterhelés konfigurációs fájlok újraindítása nélkül a kérelmet. Képzeljük el, hogy van egy alkalmazás, amely beolvassa konfiguráció egy YAML fájlt, és egyszerűen megjeleníti az értékeket a konfigurációs a képernyőn. Kissé módosított ezt az alkalmazást, akkor cserélje ki a régi konfigurációt az új egyszerűen elküldi a kívánt jelet.

következtetés

Kapcsolódó cikkek