Linux-базираните операционни системи се считат за по-стабилни от другите операционни системи. Свидетелство за това е фактът, че Linux заема над 95% от суперкомпютите в света. Въпреки това, стабилността и производителността не означават, че системите на Линукс не преживяват замръзване на приложения или операционни системи.

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

Забележка : Всички решения / техники, споменати в тази статия, са тествани на Ubuntu (версия 16.04). Те могат или не могат да работят върху други дистрибуции.

Замразяване на приложението

Когато дадено приложение замръзне, първата и най-очевидна стъпка е да затворите приложението, като кликнете върху бутона за затваряне (кръгъл бутон с "x" в него), разположен в горния ляв ъгъл на прозореца на приложението. Обикновено в случай на замразяване, когато правите това, се появява малка кутия с прозорец, в която се казва, че приложението не отговаря, като ви дава възможност да убиете процеса или да изчакате приложението да отговори.

Можете да кликнете върху бутона "Принудително прекратяване", за да се отървете от приложението. Ако обаче това не се случи, следващата стъпка трябва да бъде стартирането на командата xkill на терминала на командния ред. (Можете също така да създадете клавишна комбинация за него.) Веднага щом се изпълни командата, показалеца на мишката ще се превърне в X.

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

Докато "xkill" е отлично решение, за да се отървете от замразените приложения, не можете да използвате тази техника върху процесите / приложенията, които нямат GUI. Не се притеснявайте, тъй като вече имаме известни решения като изпращането на сигнал SIGINT към приложението / процеса, като натиснете "Ctrl + C" или убивате процеса, като използвате командата kill .

Когато мишката спира и при работа

Какво ще стане, ако мишката ви замръзне? В този случай най-удобният вариант е да вземете командния терминал на командния ред, който можете да стартирате чрез натискане на "Alt + F2", въвеждане на gnome-terminal и след това натискане на Enter.

Излишно е да казвам, след като сте на командния ред, лесно можете да убиете процес / приложение, независимо дали е базиран на GUI.

Ако по някаква причина горепосоченото решение не работи, можете да превключите към виртуален терминал, като натиснете "Alt + Ctrl + F1". След това въведете вашите данни за вход и вече имате достъп до командния ред към вашата система. Когато сте готови с убиването на нечувствителни процеси, можете да се върнете към вашата GUI сесия (което е технически конзолата, където се изпълнява вашият X сървър), като натискате "Ctrl + Alt + F7". Ако искате, можете също да рестартирате на GUI от виртуалната конзола, като изпълните следната команда:

 sudo услуга lightdm рестартиране 

Когато всичко замръзне

За съжаление, има моменти, когато всичко (включително клавиатурата) не реагира. Как трябва да се справиш с този сценарий? Магическият ключ SysRq идва тук за вашето спасение. За разлика от това, което името му предлага, магическият ключ SysRq представлява комбинация от ключове, които ви позволяват да говорите директно с ядрото, независимо от състоянието, в което се намира вашата система, което ви позволява да решите замръзванията / виси, където нищо не отговаря.

Ето основните комбинации, за които говорим:

  • Alt + SysReq + F : Тази клавишна комбинация изисква от ядрото да убие един процес (най-скъпият) в даден момент.
  • Alt + SysReq + K : Тази клавишна комбинация изисква от ядрото да убие всички приложения / процеси наведнъж.
  • Alt + SysReq + REISUB : Тази клавишна комбинация изисква от ядрото да извърши чисто рестартиране на системата.

Ето как третата комбинация от клавиши (в списъка по-горе) извършва чисто рестартиране:

  • R : Превключете в режим XLATE
  • E : Изпращане на SIGTERM до всички процеси освен init
  • I : Изпратете SIGKILL до всички процеси освен init
  • S : Синхронизирайте всички монтирани файлови системи
  • U : Преименувайте всички файлови системи като само за четене
  • B : Рестартирайте

СЪВЕТ : можете да си спомните комбинацията REISUB като обратна страна на BUSIER.

Ясно е, че комбинацията от клавиши "Alt + SysReq + REISUB" е по-добра алтернатива от това да стартирате студено рестартиране на вашата система.

Забележка : За да работи магическият ключ SysRq, уверете се, че параметърът "kernel.sysrq" в файла "/etc/sysctl.d/10-magic-sysrq.conf" е настроен на 1.

заключение

Има много техники, които можете да използвате, за да излезете от ситуации на замразяване на приложения / OS в Ubuntu. Тук е важно да подчертаете - и важно да разберете - е, че тези техники са там, за да ви спестят от извършването на физическо нулиране или включване / изключване, което в идеалния случай би трябвало да бъде последният вариант в повечето случаи.

Кредит на изображението: / home