Как да използвате командата ps за наблюдение на процесите в Linux
Фатмавати Ахмад Заенури/Shutterstock
Вземете моментна снимка на процесите, изпълнявани във вашия Linux компютър с |_+_| команда . Намерете процеси по име, потребител или дори терминал с толкова много или толкова малко подробности, колкото са ви необходими. Ние ви показваме как.
Управление на процеси в Linux
Биещото сърце на всички Linux и Unix-подобни операционни системи е ядрото. Сред многото му отговорности е разпределението на системни ресурси като RAM и CPU време. Те трябва да се манипулират в реално време, така че всички работещи процеси да получат справедлив дял, според приоритета на всяка задача.
Понякога задачите могат да се блокират, да влязат в тесен цикъл или да не реагират по други причини. Или може да продължат да работят, но поглъщат твърде много процесорно време или RAM, или да се държат по някакъв също толкова антисоциален начин. Понякога задачите трябва да бъдат убити като милост към всички участващи. Първата стъпка. Разбира се, е да се идентифицира въпросният процес.
Но може би изобщо нямате проблеми със задача или производителност. Може би просто сте любопитни кои процеси се изпълняват във вашия компютър и бихте искали да надникнете под капака. |_+_| командата удовлетворява и двете нужди. Дава ти моментна снимка на случващото се във вашия компютър точно сега.
|_+_| е достатъчно гъвкав, за да ви даде точно информацията, от която се нуждаете, точно във формата, който искате. Всъщност |_+_| има много опции. Опциите, описани тук, ще се погрижат за повечето обичайни нужди. Ако трябва да отидете по-дълбоко в |_+_| отколкото сме го взели в тази статия, ще откриете, че нашето въведение прави man страницата по-лесна за смилане.
Процеси на листване
Най-лесният начин за използване на |_+_| е да го стартирате без параметри:
ps
Реклама
|_+_| показва списък на процесите, стартирани от потребителя, който е изпълнил командата.
Четирите колони са:
- & rsaquo; Как да използвате journalctl за четене на системни регистрационни файлове на Linux
- & rsaquo; Как да изтриете потребител в Linux (и да премахнете всяка следа)
- & rsaquo; Най-добрите дистрибуции на Linux без systemd
- & rsaquo; Как да използвате strace за наблюдение на системни повиквания на Linux
- › Как да намерите своя Spotify Wrapped 2021
- & rsaquo; Кибер понеделник 2021: Най-добрите технологични сделки
- & rsaquo; Кибер понеделник 2021: Най-добрите оферти за Apple
- › Компютърната папка е 40: Как звездата на Xerox създаде работния плот
Процес на листване за всички потребители
чрез добавяне на |_+_| (изберете всички процеси) можем да направим |_+_| избройте процесите, стартирани от всички потребители, а не само от потребителя, който изпълнява |_+_| команда. Тъй като това ще бъде дълъг списък, ние го въвеждаме в |_+_|.
ps
Списъкът с процеси се прехвърля в |_+_|.
Имаме много повече записи в списъка, но виждаме същите четири колони, както преди. Записите с въпросителен знак |_+_| в |_+_| колоната не са стартирани от прозорец на терминала.
Показване на йерархия на процесите
Понякога може да ви помогне да разберете проблем или да идентифицирате конкретен процес, ако можете да видите кои процеси са стартирали други процеси. Използваме |_+_| (йерархична) опция за това.
ps
Отстъпът показва кои процеси са родители на кои други процеси.
Реклама
За да добавим малко повече яснота, можем да попитаме |_+_| да добавя някои ASCII линии и да начертаете йерархията като дърво. Опцията да направите това е |_+_| опция.
ps
Това улеснява проследяването кои процеси са родители на други процеси.
Изброяване на процеси по име
Можете да предавате изхода от |_+_| чрез |_+_| за изброяване на записи които имат имена, които съответстват на думата за търсене . Тук търсим записи, които съответстват на термина за търсене на firefox:
ps
В този случай изходът е единичен запис за процеса, който ни интересува. Разбира се, ако бяхме пуснали няколко екземпляра на Firefox, щеше да има повече от един елемент, върнат в списъка.
Показване на още колони в изхода
За да добавите още колони към изхода, използвайте |_+_| опция (пълен формат).
ps
Допълнителен набор от колони е включен в изхода от |_+_|.
Колоните са:
С помощта на |_+_| (допълнителен пълен формат) опция можем да получим още повече колони:
ps
Колоните, които получаваме този път, изискват екранът да бъде превъртан настрани, за да се разкрият всички.
Натискането на клавиша със стрелка надясно измества дисплея наляво.
Колоните, които получаваме сега са:
Изброяване на процеси по идентификатор на процес
След като намерите идентификатора на процеса за процеса, който ви интересува, можете да го използвате с |_+_| команда за изброяване на подробностите за този процес. Използвайте |_+_| (изберете по ID на процеса) опция, за да постигнете това:
-e
Подробностите за този процес са изброени:
Не сте ограничени до един идентификатор на процес. Можете да предоставите списък с идентификатори на процеси, разделени с интервали.
Изброяване на процеси по команда
|_+_| Опцията (команда) ви позволява да търсите процес, използвайки името на командата. Това е името на командата, която стартира процеса. Това е малко по-различно от командния ред, който може да включва имена на пътища и параметри или опции.
ps
Подробностите за процеса на затвора са изброени.
Изброяване на процеси, собственост на потребител
За да видите процесите, които са собственост на конкретен потребител, използвайте |_+_| опция (списък с потребители):
ps
Реклама
Показват се процесите, притежавани от потребителския акаунт mary.
Изброяване на процеси по терминал
За да видите процесите, свързани с TTY, използвайте |_+_| (избира се чрез TTY). Използва се без TTY номер, |_+_| опция докладва за процеси, свързани с текущия прозорец на терминала.
less
less
|_+_| командата съобщава, че това е псевдо-телетип 0. Процесите, изброени от |_+_| всички са свързани с TTY |_+_|.
Ако предадем TTY номер в командния ред, трябва да получим отчет за процесите, свързани с този TTY.
?
Този път всички процеси са свързани с TTY |_+_|.
СВЪРЗАНИ: Какво е TTY в Linux? (и как да използвате командата tty)
Избиране на колони за показване
С |_+_| (формат) опция, можете да изберете кои колони искате да включите в изхода от |_+_|. Посочвате колоните по име. (Дългият) списък с имена на колони може да се види на man страница в раздела, озаглавен Стандартни спецификатори на формат. В този пример избираме процесорното време (|_+_|) и командния ред с аргументи (|_+_|) да бъдат включени в изхода.
TTY
Резултатът включва само нашите две заявени колони.
Сортиране на изхода по колони
Можете да сортирате изхода вместо вас, като използвате |_+_| опция. Нека сортираме изхода по колоната на процесора:
-H
Тирето |_+_| на |_+_| Параметърът за сортиране дава низходящ ред на сортиране.
За да видите десетте най-интензивни процесора, прекарайте изхода през |_+_| команда :
ps
Получаваме сортиран, съкратен списък.
Ако добавим още колони към нашия дисплей, можем да сортираме по повече колони. Нека добавим |_+_| колона. Това е процентът от паметта на компютъра, който се използва от процеса. Без тире или с плюс |_+_|, редът на сортиране е възходящ.
--forest
Получаваме нашата допълнителна колона и новата колона е включена в сортирането. Първата колона е сортирана преди втората колона, а втората колона е сортирана във възходящ ред, защото не сме поставили тире на |_+_|.
Реклама
Нека да го направим малко по-полезен и да добавим колоната с идентификатор на процеса (|_+_|), за да можем да видим номера на процеса на всеки процес в нашия списък.
ps
Сега можем да идентифицираме процесите.
Убиване на процеси чрез ID на процес
Обхванахме редица начини за идентифициране на процеси, включително име, команда, потребител и терминал. Ние също така разгледахме начини за идентифициране на процесите по техните динамични атрибути, като използване на процесора и памет.
Така че, по един или друг начин, можем да идентифицираме процесите, които се изпълняват. Като знаем техния идентификационен номер на процеса, можем (ако трябва) убийте някой от тези процеси използвайки |_+_| команда. Ако искаме да убием процес 898, ще използваме този формат:
grep
Ако всичко върви добре, процесът се прекратява безшумно.
СВЪРЗАНИ: Как да убивате процеси от терминала на Linux
Убиване на процеси по име
|_+_| командата ви позволява да убиване на процеси по име . Уверете се, че сте идентифицирали правилния процес! Тази команда ще прекрати горния процес.
-f
Отново няма новини е добра новина. Процесът се прекратява безшумно.
Убиване на множество процеси по име
Ако имате няколко изпълнявани копия на процес или процесът е породил редица дъщерни процеси (както Google Chrome може да направи), как можете да ги унищожите? Това е също толкова лесно. Използваме |_+_| команда.
Имаме две копия на най-добре работещите:
ps
Можем да прекратим и двамата с тази команда :
-F
Реклама
Липсата на отговор означава, че няма проблеми, така че и двата процеса са прекратени.
Вземете динамичен изглед с горната част
Резултатът от |_+_| е изглед на моментна снимка. Не се актуализира. За да получите актуализиран изглед на процесите, използвайте |_+_| команда. Той осигурява а динамичен изглед на процесите, изпълнявани във вашия компютър . Дисплеят е от две части. В горната част на екрана има зона за табло, съставена от редове с текст, и таблица в долната част на екрана, съставена от колони.
Стартиране |_+_| с тази команда:
ps
Колоните съдържат информация за процесите:
Състоянието на процеса може да бъде едно от:
Натиснете клавиша Q, за да излезете от |_+_|.
СВЪРЗАНИ: 37 Важни Linux команди, които трябва да знаете
Преди да убиете процес
Уверете се, че това е този, който търсите, и проверете дали няма да ви създаде проблеми. По-специално, струва си да проверите с |_+_| (йерархия) и |_+_| опции, за да сте сигурни, че няма важни дъщерни процеси, за които сте забравили.
СВЪРЗАНИ: Най-добрите Linux лаптопи за разработчици и ентусиасти
ПРОЧЕТЕТЕ СЛЕДВАЩОДейв Маккей за първи път използва компютри, когато перфорираната хартиена лента беше на мода и оттогава той програмира. След повече от 30 години в ИТ индустрията, той вече е технологичен журналист на пълен работен ден. По време на кариерата си той е работил като програмист на свободна практика, мениджър на международен екип за разработка на софтуер, ръководител на проекти за ИТ услуги и, последно, като служител по защита на данните. Неговото писане е публикувано от howtogeek.com, cloudsavvyit.com, tenterpriser.com и opensource.com. Дейв е евангелист на Linux и привърженик на отворен код.
Прочетете пълната биография