Как да използвате командата ps за наблюдение на процесите в Linux

Прозорец на терминал на лаптоп с Linux.

Фатмавати Ахмад Заенури/Shutterstock



Вземете моментна снимка на процесите, изпълнявани във вашия Linux компютър с |_+_| команда . Намерете процеси по име, потребител или дори терминал с толкова много или толкова малко подробности, колкото са ви необходими. Ние ви показваме как.

Управление на процеси в Linux

Биещото сърце на всички Linux и Unix-подобни операционни системи е ядрото. Сред многото му отговорности е разпределението на системни ресурси като RAM и CPU време. Те трябва да се манипулират в реално време, така че всички работещи процеси да получат справедлив дял, според приоритета на всяка задача.





Понякога задачите могат да се блокират, да влязат в тесен цикъл или да не реагират по други причини. Или може да продължат да работят, но поглъщат твърде много процесорно време или RAM, или да се държат по някакъв също толкова антисоциален начин. Понякога задачите трябва да бъдат убити като милост към всички участващи. Първата стъпка. Разбира се, е да се идентифицира въпросният процес.

Но може би изобщо нямате проблеми със задача или производителност. Може би просто сте любопитни кои процеси се изпълняват във вашия компютър и бихте искали да надникнете под капака. |_+_| командата удовлетворява и двете нужди. Дава ти моментна снимка на случващото се във вашия компютър точно сега.



|_+_| е достатъчно гъвкав, за да ви даде точно информацията, от която се нуждаете, точно във формата, който искате. Всъщност |_+_| има много опции. Опциите, описани тук, ще се погрижат за повечето обичайни нужди. Ако трябва да отидете по-дълбоко в |_+_| отколкото сме го взели в тази статия, ще откриете, че нашето въведение прави man страницата по-лесна за смилане.

Процеси на листване

Най-лесният начин за използване на |_+_| е да го стартирате без параметри:

ps



Реклама

|_+_| показва списък на процесите, стартирани от потребителя, който е изпълнил командата.

Четирите колони са:

    PID: Идентификационният номер на процеса на процеса. TTY: Името на конзолата, в която е влязъл потребителят. ВРЕМЕ: Количеството време за обработка на процесора, което процесът е използвал. CMD: Името на командата, която стартира процеса

Процес на листване за всички потребители

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

ps

Списъкът с процеси се прехвърля в |_+_|.

Имаме много повече записи в списъка, но виждаме същите четири колони, както преди. Записите с въпросителен знак |_+_| в |_+_| колоната не са стартирани от прозорец на терминала.

Показване на йерархия на процесите

Понякога може да ви помогне да разберете проблем или да идентифицирате конкретен процес, ако можете да видите кои процеси са стартирали други процеси. Използваме |_+_| (йерархична) опция за това.

ps

Отстъпът показва кои процеси са родители на кои други процеси.

Реклама

За да добавим малко повече яснота, можем да попитаме |_+_| да добавя някои ASCII линии и да начертаете йерархията като дърво. Опцията да направите това е |_+_| опция.

ps

Това улеснява проследяването кои процеси са родители на други процеси.

Изброяване на процеси по име

Можете да предавате изхода от |_+_| чрез |_+_| за изброяване на записи които имат имена, които съответстват на думата за търсене . Тук търсим записи, които съответстват на термина за търсене на firefox:

ps

В този случай изходът е единичен запис за процеса, който ни интересува. Разбира се, ако бяхме пуснали няколко екземпляра на Firefox, щеше да има повече от един елемент, върнат в списъка.

Показване на още колони в изхода

За да добавите още колони към изхода, използвайте |_+_| опция (пълен формат).

ps

Допълнителен набор от колони е включен в изхода от |_+_|.

Колоните са:

    UID: Потребителският идентификатор на собственика на този процес. PID: Идентификаторът на процеса на процеса. PPID: ID на родителския процес на процеса. ° С: Броят деца, които процесът има. ОЦЕНКИ: Начален час. Моментът, в който процесът е започнал. TTY: Името на конзолата, в която е влязъл потребителят. ВРЕМЕ: Количеството време за обработка на процесора, което процесът е използвал. CMD: Името на командата, която стартира процеса.
Реклама

С помощта на |_+_| (допълнителен пълен формат) опция можем да получим още повече колони:

ps

Колоните, които получаваме този път, изискват екранът да бъде превъртан настрани, за да се разкрият всички.

Натискането на клавиша със стрелка надясно измества дисплея наляво.

Колоните, които получаваме сега са:

    UID: Потребителският идентификатор на собственика на този процес. PID: Идентификаторът на процеса на процеса. PPID: ID на родителския процес на процеса. ° С: Броят деца, които процесът има. С: Размер в RAM страници на изображението на процеса. RSS: Постоянен размер на комплекта. Това е неразменената физическа памет, използвана от процеса. PSR: Процесорът, към който е присвоен процесът. ОЦЕНКИ: Начален час. Моментът, в който процесът е започнал. TTY: Името на конзолата, в която е влязъл потребителят. ВРЕМЕ: Количеството време за обработка на процесора, което процесът е използвал. CMD: Името на командата, която стартира процеса.

Изброяване на процеси по идентификатор на процес

След като намерите идентификатора на процеса за процеса, който ви интересува, можете да го използвате с |_+_| команда за изброяване на подробностите за този процес. Използвайте |_+_| (изберете по ID на процеса) опция, за да постигнете това:

-e

Подробностите за този процес са изброени:

Не сте ограничени до един идентификатор на процес. Можете да предоставите списък с идентификатори на процеси, разделени с интервали.

Изброяване на процеси по команда

|_+_| Опцията (команда) ви позволява да търсите процес, използвайки името на командата. Това е името на командата, която стартира процеса. Това е малко по-различно от командния ред, който може да включва имена на пътища и параметри или опции.

ps

Подробностите за процеса на затвора са изброени.

Изброяване на процеси, собственост на потребител

За да видите процесите, които са собственост на конкретен потребител, използвайте |_+_| опция (списък с потребители):

ps

Реклама

Показват се процесите, притежавани от потребителския акаунт mary.

Изброяване на процеси по терминал

За да видите процесите, свързани с TTY, използвайте |_+_| (избира се чрез TTY). Използва се без TTY номер, |_+_| опция докладва за процеси, свързани с текущия прозорец на терминала.

less less

|_+_| командата съобщава, че това е псевдо-телетип 0. Процесите, изброени от |_+_| всички са свързани с TTY |_+_|.

Ако предадем TTY номер в командния ред, трябва да получим отчет за процесите, свързани с този TTY.

?

Този път всички процеси са свързани с TTY |_+_|.

СВЪРЗАНИ: Какво е TTY в Linux? (и как да използвате командата tty)

Избиране на колони за показване

С |_+_| (формат) опция, можете да изберете кои колони искате да включите в изхода от |_+_|. Посочвате колоните по име. (Дългият) списък с имена на колони може да се види на man страница в раздела, озаглавен Стандартни спецификатори на формат. В този пример избираме процесорното време (|_+_|) и командния ред с аргументи (|_+_|) да бъдат включени в изхода.

TTY

Резултатът включва само нашите две заявени колони.

Сортиране на изхода по колони

Можете да сортирате изхода вместо вас, като използвате |_+_| опция. Нека сортираме изхода по колоната на процесора:

-H

Тирето |_+_| на |_+_| Параметърът за сортиране дава низходящ ред на сортиране.

За да видите десетте най-интензивни процесора, прекарайте изхода през |_+_| команда :

ps

Получаваме сортиран, съкратен списък.

Ако добавим още колони към нашия дисплей, можем да сортираме по повече колони. Нека добавим |_+_| колона. Това е процентът от паметта на компютъра, който се използва от процеса. Без тире или с плюс |_+_|, редът на сортиране е възходящ.

--forest

Получаваме нашата допълнителна колона и новата колона е включена в сортирането. Първата колона е сортирана преди втората колона, а втората колона е сортирана във възходящ ред, защото не сме поставили тире на |_+_|.

Реклама

Нека да го направим малко по-полезен и да добавим колоната с идентификатор на процеса (|_+_|), за да можем да видим номера на процеса на всеки процес в нашия списък.

ps

Сега можем да идентифицираме процесите.

Изход от ps -e -o pid,pcpu,pmem,args --sort -pcpu,pmem | глава 10

Убиване на процеси чрез ID на процес

Обхванахме редица начини за идентифициране на процеси, включително име, команда, потребител и терминал. Ние също така разгледахме начини за идентифициране на процесите по техните динамични атрибути, като използване на процесора и памет.

Така че, по един или друг начин, можем да идентифицираме процесите, които се изпълняват. Като знаем техния идентификационен номер на процеса, можем (ако трябва) убийте някой от тези процеси използвайки |_+_| команда. Ако искаме да убием процес 898, ще използваме този формат:

grep

Ако всичко върви добре, процесът се прекратява безшумно.

СВЪРЗАНИ: Как да убивате процеси от терминала на Linux

Убиване на процеси по име

|_+_| командата ви позволява да убиване на процеси по име . Уверете се, че сте идентифицирали правилния процес! Тази команда ще прекрати горния процес.

-f

Отново няма новини е добра новина. Процесът се прекратява безшумно.

Убиване на множество процеси по име

Ако имате няколко изпълнявани копия на процес или процесът е породил редица дъщерни процеси (както Google Chrome може да направи), как можете да ги унищожите? Това е също толкова лесно. Използваме |_+_| команда.

Имаме две копия на най-добре работещите:

ps

Можем да прекратим и двамата с тази команда :

-F

Реклама

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

изход от sudo killall top в термонален прозорец

Вземете динамичен изглед с горната част

Резултатът от |_+_| е изглед на моментна снимка. Не се актуализира. За да получите актуализиран изглед на процесите, използвайте |_+_| команда. Той осигурява а динамичен изглед на процесите, изпълнявани във вашия компютър . Дисплеят е от две части. В горната част на екрана има зона за табло, съставена от редове с текст, и таблица в долната част на екрана, съставена от колони.

Стартиране |_+_| с тази команда:

ps

Колоните съдържат информация за процесите:

    PID: ID на процеса ПОТРЕБИТЕЛ: Име на собственика на процеса PR: Приоритет на процеса НИ: Приятната стойност на процеса УВАЖЕНИ: Виртуална памет, използвана от процеса ГОЛЕШКО: Постоянна памет, използвана от процеса SHR: Споделена памет, използвана от процеса С: Състояние на процеса. Вижте списъка по-долу със стойностите, които това поле може да приеме %ПРОЦЕСОР: делът на времето на процесора, използвано от процеса след последната актуализация %MEM: дял на използваната физическа памет ВРЕМЕ+: общото време на процесора, използвано от задачата в стотни от секундата КОМАНД: име на команда или команден ред (име и параметри на командния ред) Ако командната колона не се вижда, натиснете клавиша със стрелка надясно.

Състоянието на процеса може да бъде едно от:

    д: Непрекъсваем сън Р: Бягане С: Спя т: проследено (спряно) С: Зомби

Натиснете клавиша Q, за да излезете от |_+_|.

СВЪРЗАНИ: 37 Важни Linux команди, които трябва да знаете

Преди да убиете процес

Уверете се, че това е този, който търсите, и проверете дали няма да ви създаде проблеми. По-специално, струва си да проверите с |_+_| (йерархия) и |_+_| опции, за да сте сигурни, че няма важни дъщерни процеси, за които сте забравили.

Linux команди
Файлове катран · pv · котка · tac · chmod · сцепление · разл · sed · С · човек · pushd · popd · fsck · тестов диск · сек · fd · пандока · CD · $PATH · awk · присъединяване · jq · сгънете · уникален · journalctl · опашка · състояние · ls · fstab · изхвърли · по-малко · chgrp · chown · rev · виж · струни · Тип · преименувайте · цип · разархивирайте · монтиране · umount · Инсталирай · fdisk · mkfs · rm · rmdir · rsync · df · gpg · ние · нано · mkdir · от · вътрешен · кръпка · преобразувам · rclone · накъсайте · SRM
процеси псевдоним · екран · връх · хубаво · renice · напредък · strace · система · tmux · chsh · история · в · партида · Безплатно · който · dmesg · потребителски мод · п.с · chroot · xargs · tty · мизичко · lsof · vmstat · изчакване · стена · да · убиват · сън · sudo · неговата · време · groupadd · потребителски мод · групи · lshw · изключвам · рестартирайте · Спри се · изключване · passwd · lscpu · crontab · дата · bg · fg
Работа в мрежа netstat · пинг · трасиране · ip · ss · кой е · fail2ban · bmon · Вие · пръст на ръката · nmap · ftp · къдрица · wget · Кой · кой съм аз · В · iptables · ssh-keygen · ufw

СВЪРЗАНИ: Най-добрите Linux лаптопи за разработчици и ентусиасти

ПРОЧЕТЕТЕ СЛЕДВАЩО Снимка на профила на Дейв Маккей Дейв Маккей
Дейв Маккей за първи път използва компютри, когато перфорираната хартиена лента беше на мода и оттогава той програмира. След повече от 30 години в ИТ индустрията, той вече е технологичен журналист на пълен работен ден. По време на кариерата си той е работил като програмист на свободна практика, мениджър на международен екип за разработка на софтуер, ръководител на проекти за ИТ услуги и, последно, като служител по защита на данните. Неговото писане е публикувано от howtogeek.com, cloudsavvyit.com, tenterpriser.com и opensource.com. Дейв е евангелист на Linux и привърженик на отворен код.
Прочетете пълната биография

Интересни Статии