Како послати и ухватити СИГТЕРМ у Басх и Питхон

Kako Poslati I Uhvatiti Sigterm U Bash I Pithon



У Линуку, процеси комуницирају једни са другима помоћу сигнала. Сигнали се понашају као софтверски прекиди који обавештавају програме о различитим догађајима или захтевима. На пример, када је програм покренут, можете послати сигнал за укидање да бисте изашли из програма. Сигнал који се шаље може покренути различите радње као што су заустављање извршења, прекид програма, наставак извршавања итд.

Када радите са Басх-ом и Питхон-ом, можете послати сигнал СИГТЕРМ-а да лагано прекине покренути процес. Овај пост покрива слање и хватање СИГТЕРМ-а у Басх и Питхон-у.

Шта је ЗНАК ТЕРМ

Уник системи имају три категорије сигнала: систем, уређај и кориснички дефинисани сигнали. Сваки сигнал има целобројну вредност. Можете извршити сигнал тако што ћете навести његово име или његову целобројну вредност.







СИГТЕРМ је сигнал са целобројном вредношћу 15. Извршава се када желите да тихо прекинете покренути процес. Следеће је синтакса за коришћење СИГТЕРМ-а у Басх-у:



убити ЦИЉНИ ТЕРМ < ПИД >

или

убити - петнаест < ПИД >

Можете проверити све доступне сигнале помоћу следеће команде:



убити -л





Како послати и ухватити СИГТЕРМ у Басх и Питхон

Можда ћете желети да пошаљете и ухватите СИГТЕРМ у Басх и Питхон у различитим инстанцама. Када извршите свој Басх или Питхон програм, можете извршити сигнал СИГТЕРМ да бисте убили програм. Имамо различите примере да разумемо како шаљете и хватате СИГТЕРМ у Басх и Питхон.

1. Коришћење Питхон скрипте

Када користите Питхон 1.4 и најновије верзије, можете користити библиотеку сигнала за слање и хватање СИГТЕРМ-а. Увезите библиотеку у свој програм да бисте дефинисали како ваш програм треба да ухвати и реагује на различите сигнале. Библиотека сигнала вам омогућава да креирате обрађивач сигнала који ће извести цео број примљеног сигнала. Затим можете регистровати ухваћени сигнал и добити информације о тренутном процесу као што је његов ПИД. Хајде да дамо пример.



Имамо Питхон скрипту која хвата цео број послатог сигнала. Штавише, хвата ПИД тренутног процеса.

На следећој слици, ми извршавамо Питхон скрипту и имамо вхиле петљу која се извршава сваких неколико секунди. На другом терминалу можемо послати СИГТЕРМ сигнал да прекине процес навођењем ПИД-а који добијамо извршавањем Питхон скрипте:

Када пошаљемо СИГТЕРМ сигнал, примећујемо да скрипта престаје да се извршава. То је зато што хвата цео број сигнала. У овом случају, ми извршавамо килл -15 за СИГТЕРМ сигнал. Такође можете послати СИГТЕРМ килл сигнал користећи кључну реч СИГТЕРМ уместо његове целобројне вредности. И даље добијамо исти резултат.

Такође можете да извршите свој Питхон посао користећи следећу синтаксу:

питхон3 < скрипта/посао > &

За разлику од првог метода, када пошаљемо СИГТЕРМ користећи ову опцију, можемо видети да се ИД задатка штампа када посао почне да се извршава. Након што га убијемо, добијамо статус „готово“. СИГТЕРМ се може послати навођењем његовог имена или целог броја.

2. Коришћење Басх скрипте

Можете користити команду „трап“ да ухватите сигнал када извршавате Басх скрипту. У овом примеру смо додали команду „трап“ да ухватимо СИГТЕРМ сигнал. Скрипта је петља „за“ за извршавање команде „датум“ хиљаду пута ако се не пошаље СИГТЕРМ сигнал.

Када извршавате Басх скрипту, можете послати СИГТЕРМ сигнал притиском на Цтрл + З тастери на тастатури. Команда „трап“ хвата пренети сигнал, а петља „фор“ ће престати да се извршава. Добићете излаз који потврђује да је покренути посао примио СИГТЕРМ сигнал и да је заустављен.

Тако шаљете и хватате СИГТЕРМ у Басху.

Закључак

Можете слати различите сигнале за постизање различитих циљева приликом извршавања посла или програма. СИГТЕРМ се шаље да тихо заустави програм. За Питхон, потребан вам је руковалац сигналом да ухвати сигнал, а можете послати СИГТЕРМ користећи команду „килл“. Можете да користите команду „трап“ и тастере на тастатури на Басху да ухватите и пошаљете СИГТЕРМ сигнал. Овај пост је детаљно представио различите примере како то постићи.