Linux: как да се убие процес, използвайки терминални команди

Представете си: стартирахте програмата, работите с нея и след известно време тя престава да отговаря на искания и виси. Невъзможно е да стартирате отново приложението, защото копието му все още виси в паметта на компютъра. Какво да направите в този случай? На първо място, трябва да изключите програмата и да премахнете процеса от паметта. Най-простият и универсален начин за убиване на процес в Linux е използването на терминални команди. Тази опция ще работи при всяка дистрибуция на Linux.

Процеси в Linux

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


Всички процеси, изпълнявани на Linux, имат следните атрибути:
  • PID е уникален идентификатор за всеки процес.
  • PPID е идентификатор на родителския процес.
  • Потребителският идентификатор, който стартира процеса.
  • Приоритет.
  • Състояние на процеса.
  • Всеки работещ процес се намира в едно от състоянията:
  • "Изпълнение". Буквата R. се използва за обозначаване на това състояние.
  • Процесът, който задейства операция на системата, например входни или изходни данни и изчаква, когато е завършен, се нарича "Expectation". Засегнати от буквата S.
  • Процесът, спрян от потребителя или операционната система Linux, е "спрян". Това състояние е обозначено със символа Т.
  • "Зомбита" са процеси, които вече не саИзпълними, но консумират ресурсите на операционната система.
  • Непрекъснатият процес може да бъде завършен, докато операцията за директен достъп бъде завършена в паметта. Процесът се обозначава с D.
  • Търсене на процес

    Преди да се опитате да убиете процес, първо трябва да го намерите. Често за тази цел Linux използва две команди top и ps.


    Използване на горната команда

    Горната команда показва пълен списък на текущите процеси. В допълнение, списъкът съдържа много полезна информация за всеки работещ процес, например:
  • PID - уникален номер на процес;
  • USER е потребителското име, което стартира този процес;
  • PR - приоритет на процеса в даден момент;
  • NI - приоритетът, възложен на процеса от екипа на NICE;
  • S е състоянието на този процес;
  • % CPU - колко процесорно време отнема този процес (като процент);
  • % MEM - количеството RAM, което този процес отнема (като процент);
  • TIME + - колко време е изминало от началото на процеса;
  • КОМАНДА - Програмата, която стартира процеса.
  • Информацията, предоставена от най-горната команда, се показва подредена по нивото на използвания процесор (колона% CPU). Потребителят може да променя реда на сортиране:
  • подрежда процесите по размера на заетата памет (колона% MEM), трябва да натиснете комбинация от клавиши Shift + M;
  • могат да бъдат сортирани по номер на процес (колона PID), използвайки комбинацията Shift + N;
  • сортиране по време (колона TIME +) - Shift + T.
  • обратно къмпървоначално сортиране по нивото на натоварване на процесора - натиснете комбинацията Shift + P.

    Използване на командата ps

    Използвайки горната команда, можете да получите много необходима информация, но това не е най-удобният начин да получите необходимата информация за желания от вас процес. Можете да използвате командата ps и да филтрирате списъка с командата greep, за да избегнете търсенето на желания процес. Например, ако искате да намерите всички процеси, свързани с работещия браузър Opera, можете да въведете командата ps axu | grep Mozilla.
    Командата ps има следните параметри:
  • a - показва процеси за всички потребители;
  • u - показва потребителя, който притежава процеса;
  • x - показват процеси, които не са свързани с терминала. Тази опция е важна, когато търсите информация за графичното приложение.
  • Използвайки връзката на командите ps и grep, можете да получите цялата необходима информация, за да унищожите ограниченото приложение.

    Други начини за търсене на процес

    За да се намери PID процес по негово име, има команда pidof. Форматът на неговото използване е както следва: pidof + името на програмата. Например, за да намерите всички PID, които принадлежат на програмата Opera, трябва да въведете pidof Opera. В някои случаи се случва, че програмата завършва изпълнението си, но не освобождава мрежовия порт. За да получите информация, че в този случай трябва да въведете командата fuser: fuser -vn tcp 80. Където 80 е номерът на висящия порт. След това можете да убиете процеса на Linux на пристанището.

    Завършване на процеса с командата kill

    След като знаете PID процеса и неговото име, можетестартирайте операцията, за да завършите ненужната програма. За да направите това, използвайте две команди: kill - убий процеса на Linux и killall - завърши програмата по име.
    Структурата на командата kill: kill SID PID. Където SIGNAL е сигналът, който трябва да бъде изпратен, и PID е идентификаторът на процеса.
    Параметърът SIGNAL за завършване на процеса е 9 (SIGKILL). Така че, за да убиете pid процеса в pid с Linux, трябва да въведете командата: kill -99578. Където 9578 е уникален номер на процеса. Командата за завършване не е единствената, която може да бъде изпратена чрез приложението за убиване на системата. Вземете списък с всички команди, които могат да бъдат изпратени на командата, използвайки kill, като напишете командата kill -l.
    ​​Също така е полезно да се знаят други стойности, които параметърът SIGNAL може да приеме. Например, можете да използвате параметъра HUP за презареждане на съкратена програма. Сигналът SIGTERM не прекъсва програмата незабавно, но осигурява време за правилното изключване, т.е. програмата записва данните, завършва изпълнението й и освобождава всички заети ресурси.

    Как да се убие процес в Linux по име

    Ако знаете името на програмата, която искате да изпълните, можете да използвате командата killall. Например, за да унищожите всички процеси, свързани с приложението Opera, трябва да въведете командата: killall -9 Opera.
    Въпреки това, този екип не винаги завършва процесите, свързани с унищожената програма. Ако след изпълнение на горната команда въведете комбинация от ps aux | grep Opera и вижте, че някои процеси продължават да се изпълняват, най-добре е да ги изпълните със система kill. вВ някои случаи, за да убие процес, изпълняван от Linux от друг потребител, може да са необходими администраторски права. След това, преди процеса на завършване на командите, трябва да въведете командата sudo. Тук е цялата информация, от която потребителят се нуждае, за да управлява процесите. Вярно е, че тази тема не е лесна за начинаещи, но трябва да я овладеете, тъй като всички действия на операционната система се извършват чрез процеси. За да научите как да ги управлявате, трябва да работите малко.

    Свързани публикации