A SIGTERM küldése és elfogása a Bash és Python alkalmazásban

A Sigterm Kuldese Es Elfogasa A Bash Es Python Alkalmazasban



Linuxban a folyamatok jelek segítségével kommunikálnak egymással. A jelek szoftvermegszakításként működnek, amelyek különböző eseményekről vagy kérésekről értesítik a programokat. Például, amikor egy program fut, küldhet egy kill jelet a programból való kilépéshez. A küldött jel különböző műveleteket indíthat el, mint például a végrehajtás leállítása, a program leállítása, a végrehajtás folytatása stb.

A Bash és Python használatakor elküldheti a SIGTERM jelet a futási folyamat lágy leállításához. Ez a bejegyzés a SIGTERM Bash és Python nyelven történő küldéséről és elfogásáról szól.

Mi az a SIGN TERM

A Unix rendszereknek három jelkategóriája van: rendszer-, eszköz- és felhasználó által meghatározott jelek. Minden jelnek van egy egész értéke. A jelet a nevének vagy egész értékének megadásával hajthatja végre.







A SIGTERM egy 15-ös egész értékű jel. Akkor fut le, ha egy futó folyamatot lágyan le akarunk állítani. A következő szintaxis a SIGTERM használatához a Bashban:



megölni CÉLTERM < PID >

vagy

ölni - tizenöt < PID >

Az összes elérhető jelet a következő paranccsal ellenőrizheti:



megölni -l





A SIGTERM küldése és elfogása a Bash és Python alkalmazásban

Különböző példányokban érdemes elküldeni és elkapni a SIGTERM-et Bashban és Pythonban. A Bash vagy Python program futtatásakor végrehajthatja a SIGTERM jelet, hogy megölje a programot. Különböző példáink vannak a SIGTERM elküldésére és elfogására a Bashban és a Pythonban.

1. Python szkript használata

A Python 1.4 és a legújabb verziók használatakor a jelkönyvtárat használhatja a SIGTERM elküldésére és elfogására. Importálja a programkönyvtárat, hogy meghatározza, hogyan kell a programnak rögzítenie és reagálnia a különböző jelekre. A jelkönyvtár lehetővé teszi egy jelkezelő létrehozását, amely jelenti a vett jel egész számát. Ezután regisztrálhatja a rögzített jelet, és információkat kaphat az aktuális folyamatról, például a PID-ről. Mondjunk egy példát.



Van egy Python-szkriptünk, amely elkapja az elküldött jel egész számát. Ezenkívül elkapja az aktuális folyamat PID-jét.

A következő képen a Python szkriptet hajtjuk végre, és van egy while ciklus, amely néhány másodpercenként fut. Egy másik terminálon elküldhetjük a SIGTERM jelet a folyamat leállítására a Python szkript végrehajtásából kapott PID megadásával:

Miután elküldtük a SIGTERM jelet, észrevesszük, hogy a szkript leáll. Ez azért van, mert a jel egész számot rögzíti. Ebben az esetben a kill -15 parancsot hajtjuk végre a SIGTERM jelre. A SIGTERM kill jelet a SIGTERM kulcsszó használatával is elküldheti az egész értéke helyett. Még mindig ugyanazt az eredményt kapjuk.

A Python-feladatot a következő szintaxis használatával is végrehajthatja:

python3 < forgatókönyv/munka > &

Az első módszertől eltérően, amikor ezzel az opcióval elküldjük a SIGTERM-et, láthatjuk, hogy a feladat azonosítója a feladat végrehajtásának megkezdésekor kerül kinyomtatásra. Miután megöltük, megkapjuk a „kész” állapotot. A SIGTERM a nevének vagy egész számának megadásával küldhető el.

2. Bash Script használata

Használhatja a „trap” paranccsal jelet a Bash-szkript végrehajtásakor. Ebben a példában hozzáadtuk a „trap” parancsot, hogy elkapjuk a SIGTERM jelet. A szkript egy „for” hurok, amely ezerszer hajtja végre a „date” parancsot, ha nem érkezik SIGTERM jel.

A Bash script végrehajtásakor a SIGTERM jelet a gomb megnyomásával küldheti el Ctrl + Z billentyűzet billentyűi. A „trap” parancs rögzíti a továbbított jelet, és a „for” hurok végrehajtása kilép. Kap egy kimenetet, amely megerősíti, hogy a futó feladat SIGTERM jelet kapott és leállt.

Így küldheti el és foghatja meg a SIGTERM-et a Bashban.

Következtetés

Egy feladat vagy program végrehajtása során különböző jelzéseket küldhet különböző célok eléréséhez. A SIGTERM elküldve a program lágy leállítására szolgál. Python esetén szükség van egy jelkezelőre a jel elkapásához, és elküldheti a SIGTERM-et a „kill” paranccsal. Használhatja a „trap” parancsot és a billentyűzet billentyűit a Bash-on a SIGTERM jel rögzítésére és elküldésére. Ez a bejegyzés különböző példákat mutat be, hogyan lehet ezt részletesen elérni.