ПредишенСледващото

Командата убийство в UNIX

Командата убийство в Unix / Linux

Сигнали - софтуерни прекъсвания. Те се използват за комуникация между процеси в UNIX и UNIX-подобни операционни системи като Linux, Mac OS.

Сигнали използвани, тъй като Bell Labs UNIX през 1970 г. и днес е официално дефинирани от стандарта POSIX. Когато сигналът подава към процеса, операционната система прекъсва нормалното протичане на изпълнение на процеса и осигурява уведомяване.

Няма значение каква операционна система, която използвате, вие несъмнено ще се намира, така че вашите приложения са блокирани, и отказват да работят правилно. В Unix, Linux, разполагаме с екип от «убие», който можете да използвате, за да спре процеса веднага, но не само това, но повече за това по-късно ще ти кажа. В тази статия, «убие команда в Unix / Linux» кажа и да се покаже на крайните примери, различни комунални услуги убийство команда.

Команди и сигнали убиват

Когато се изпълни команда «убийство», вие всъщност изпращане на сигнал до системата е, и дава указания за прекратяване необичайно роботизирани приложения. Има общо 60 сигнали, които могат да бъдат използвани, но наистина всичко, което трябва да се знае, SIGTERM (15) и SIGKILL (9).

Командата убийство в UNIX

убие -l на Debian

Аз ще се опитам да ви разкажа за всички сигнали, но само в началото на разговори за най-важните и често използвани.

Ключови сигнали

Следните сигнали са част от стандарта POSIX. Всяка макро сигнал е определено в система заглавния файл. Те обикновено съкращение, без да им сигнални префикс; като SIGHUP често се нарича просто като Хюп.

SIGTERM - Този сигнал поиска спиране на процеса, която работи. Този сигнал може да се даде време да proignorirovan.Protsessu и изключване. Когато програмата е заможен, това означава, че се дава време за да спаси своя напредък и безплатни ресурси. С други думи, той не «принудени» процес изключване.

SIGKILL - SIGKILL сигнал предизвиква процеса, за да прекрати своята работа веднага. Програмата не може да се игнорира този сигнал. Незапазен напредък ще бъдат загубени.

Синтаксисът на командата е както следва:

Особено полезни сигнали включват HUP, INT, убиват, STOP, CONT, и 0.

-ите signal_name
Символичен име сигнал уточняване на сигнала трябва да бъдат изпратени не е сигнал по подразбиране.

-л [exit_status]
Ако не е посочен операнда, показват имената на сигнала; В противен случай, моля, напиши името на сигнал, съответстващ на exit_status.

-signal_name
Символичен име на сигнала се посочва сигнал да бъде изпратен на срока по подразбиране.

-signal_number
Неотрицателно цяло десетично число, като се посочва сигнал да бъде изпратен на срока по подразбиране.

Следната PID-те, са от особено значение:
-1 Ако супер, излъчва сигнал към всички процеси; в противен случай излъчва на всички protsessybelong-
ING за потребителя.

Някои от най-често използваните сигнали:

  • 1 HUP (затвори) - да се мотае.
  • 2 INT (прекъсване) - прекъсва.
  • 3 QUIT (откажат) - добив.
  • 6 ABRT (прекъсване) - прекъсва.
  • 9 убиват (не уловът е разрешен, без пренебрегване убие)
  • 14 ALrM (будилник) - услуга.
  • 15 СРОК (софтуер прекратяване на сигнала) - Софтуер за сигнала прекратяване.

«Pkill» команда ви позволява да използвате разширените редовни модели изразяване и другите критерии за допустимост. Вместо да използвате PID, сега можете да прекрати приложението чрез въвеждане на името на процеса. Например, за да ubitbrauzer Firefox. Просто изпълнете следната команда:

Xkill е графичен начин да "убие" на заявлението. Когато влезете в "xkill" в терминала, курсора на мишката веднага ще се превърне в "кръст". Всичко, което трябва да направите е да натиснете "кръста" на заявлението в нарушение, и той ще се прекрати приложението незабавно. Ако се интересувате, можете да добавите пряк път, за да активирате функцията XKill.

Още сигнали се използват

Този сигнал изпраща сигнал до процес, за да прекратите операцията. ABRT обикновено насочва към процеса, когато го нарича прекъсване () език за програмиране функция за сигнализиране абортира, но тя може да бъде управляван от всеки процес, като всеки друг сигнал.

SIGALRM, SIGVTALRM и SIGPROF

ALrM, VTALRM и / или Д-процес сигнал се изпраща, когато срока, определен във функцията на сигнализация повикване (например, setitimer) изтича.

Той изпраща, когато има сегашно време или часовник време.

Изпратени, когато се използва за процесорното време, в процеса на изтичане.

Изпратени, когато времето на процесор се използва от процеса и системата от името на процеса свършва.

Chld изпраща процес на сигнал, когато процесът на дете е завършен, прекъснат или възобновява след прекъсване. Една обща употреба на сигнали - е да се даде сигнал за обратна връзка за почистване на ресурсите, използвани в процеса на процеса на дете след неговото закриване, без изричното система повикване.

CONT Сигналът инструктира операционната система, и дава сигнал за рестартиране на процеса, който по-рано бе спрян в режим стоп или TSTP сигнал. Една важна особеност на този сигнал е да контролира работата в черупката Unix.

FPE сигналът изпращане процес, когато тя изпълнява неправилно задействане аритметика, например, като се разделят от нула.

HUP сигнал, за да изпращате, когато неин контрол терминал е затворена. Той първоначално е бил предназначен да информира процеса след падането на серийната линия (HUP отговаря за "замразяване"). В съвременните системи, този сигнал е обикновено означава, че контролът на псевдо или виртуален терминал е затворена.

ILL сигнал изпратен до процес, когато се опитате да се извършва злоумишлени, неизвестни или привилегировани инструкции (инструкции).

INT изпраща сигнал процес от контролния терминал, когато потребителят желае да прекратява процеса. Той обикновено се инициира чрез натискане на Control-C, но на някои системи, «изтрива» или «пробие».

Убий изпраща сигнал процес незабавно да преустановят работа. За разлика от SIGTERM SIGINT и този сигнал не може да бъде заловен или игнорирани и процеса на приемната не може да изпълнява всяко почистване, след като получи този сигнал.

ТРЪБА сигнал изпратен на процеса, когато се опитва да пише в тръбата без процес, свързан към другия край.

QUIT се изпраща сигнал към процеса от контрола си терминал, когато потребителят иска процеса на сметище.

SEGV се изпраща сигнал към процеса, когато той прави невалиден виртуална връзка с памет или повреда на сегментиране, тоест, когато тя изпълнява нарушение сегментиране.

STOP сигнал показва на операционната система, за да спре процеса за последващо подновяване.

СРОК се изпраща сигнал към процеса да поиска прекратяването му. За разлика от «убие» сигнал, че може да се тълкува или пренебрегнат в процеса. Това позволява на процеса за извършване на «хубаво» да спре изпълнението на освобождаването на ресурси и състоянието на опазване, където е необходимо. Трябва да се отбележи, че почти идентична с SIGINT SIGTERM.

TSTP се изпраща сигнал в процеса на нейното контролиране терминал и му казва, че е необходимо да се преустанови. Той обикновено се инициира от потребителя натиснете Control-Z. За разлика от SIGSTOP, процесът може да се регистрирате манипулатор сигнал или да се игнорира сигнала.

В TTIN TTOU и сигнали се изпращат до метод, когато се опитва да се чете от или напиши съответно (йу) терминал във фонов режим. Обикновено, този сигнал може да се получи само чрез процеси, работещи под контролния панел; демони нямаме контрол терминали и никога не трябва да получават сигнала.

И USR1 USR2 сигнали, изпратени от процеса на потребител и да посочат определени условия.

АНКЕТА се изпраща сигнал към процеса, когато асинхронен I / O събитие.

SYS се изпраща сигнал в процеса, когато тя предава лош аргумент за поканата система.

TRAP сигнал изпращане процес, когато е налице условие, че исканата дебъгер да бъдат информирани - Например, когато дадена функция се изпълнява или когато определена стойност на променливата промените.

URG се изпраща сигнал към процеса, когато гнездото е спешно или диапазон от данни е на разположение за четене.

XCPU се изпраща сигнал до процес, когато той използва превишава определена предварително зададена стойност, процесорът създадена от потребителя с течение на времето. Пристигане XCPU сигнал се отнася до метод за бързо спасяване на всички междинни резултати и да приключи добре, преди да затвори на операционната система с помощта на SIGKILL сигнал.

XFSZ се изпраща сигнал към процеса, когато файлът расте (надхвърли предварително определена стойност) от максимално допустимата стойност.

SIGRTMIN да SIGRTMAX

RTMIN сигнали - RTMAX предназначени за използване в потребителски цели. Те са в реално време сигнали.

различни сигнали

Сигналите не са стандартизирани-POSIX, понякога се използват на някои системи.

Сигналът е изпратен до процеса на EMT, когато прекъсне настъпва емулатор.

INFO се изпраща сигнал към процеса, когато молбата за статут е получена от терминала за управление.

PWR се изпраща сигнал към процеса, когато системата изпитва спиране на тока.

LOST се изпраща сигнал към процеса, когато «ключалката файл» изгубеното.

WINCH се изпраща сигнал към процеса, когато неин контрол терминал се променя размера си.

Изпращане на сигнали от клавиатурата

Сигнали могат да се изпращат от клавиатурата. Няколко стандартни стойности по подразбиране, са изброени по-долу. клавишната комбинация по подразбиране, за да изпратите сигналите за може да се определи с помощта на stty команда.

Изпрати SIGINT (прекъсване). По подразбиране тази причина процесът се прекратява.

Изпрати SIGTSTP (Задържане). По подразбиране тази причина процесът да прекрати всички операции.

Изпрати SIGQUIT (Quit). По подразбиране, това води процеса, за да се спре незабавно и нулиране на ядрото.

Изпрати SIGINFO (INFO). По подразбиране тази причина на операционната система, за да се покаже информация за екипа. Не се поддържа на всички системи.

Когато заявленията се държат зле и да попречат на системата да се мотае, че е много съблазнително да рестартирате компютъра и да започнете сесията отново и отново. С тези «убие» команди, можете да контролирате по-добре лошото поведение на приложения, които причиняват или може да доведе до срив на системата. На тази, стигам до извода, тази тема «убийство команда в Unix / Linux».

Подкрепете проекта - споделете линка, благодаря!