Вашата Linux система работи бавно? Или просто сте любопитни за това, което се случва под капака? Има мощна вградена програма, наречена "ps", която позволява на потребителите да видят моментна снимка на процесите, които се изпълняват в дадена система. Обсъждаме някои от опциите, които са на разположение на ps, и накрая, би трябвало да можете да проверявате работещите процеси на вашия компютър Linux като опитен маниак.

Въведение

Повечето версии на ps приемат опции за BSD стил (които могат да бъдат групирани и НЯМА да се използват с тире), UNIX опции за стил (които могат да бъдат групирани и ТРЯБВА да се използват с тире) и GNU дълги опции (които се предхождат от две тирета). За тази статия ще смесим и използваме няколко вида опции, с пристрастие за стилове на UNIX. Например:

 ps -u корен u -sort = pid 
  • UNIX STYLE -u root определя потребител = root
  • BSD STYLE u указва показване на потребителски ориентиран формат. Това е любима опция, тъй като изходният формат, създаден с помощта на това, съдържа много полезна информация.
  • GNU LONG OPTION –sort определя реда за сортиране на процеса. В този случай сортирайте по id на процеса (pid)

Тази статия би предпочела опциите за UNIX и използва BSD само за краткост. Например командата

 ps u 

показва процесите от текущия потребител, които са прикрепени към терминал, с изходен формат "ориентиран към потребителя". За да получите същия изходен формат, използвайки опциите на UNIX, е необходима опцията

 ps -o "потребител, pid, pcpu, pmem, vsz, rss, tty, stat, bsdstart, bsdtime, args" 

Това обяснение на опцията "-о" е:

  • потребител - ефективното потребителско име или потребителското име на процеса
  • pid - процесът id
  • pcpu - времето на процесора, използвано от процеса, разделено на момента, в който процесът е бил стартиран
  • pmem - процентът на физическата памет, използвана от процеса
  • vsz - размера на виртуалната памет на процеса
  • rss - необменената физическа памет, която процесът е използвал
  • tty - контролния терминал на процеса
  • stat - състоянието на процеса, определено чрез използване на кодовете на състоянието на процеса (прочетете страниците за повече информация)
  • start_time - времето, през което започната командата
  • време - кумулативното време на процесора, използвано от процеса
  • арги - командата, използвана за изпълнение на процеса, заедно с неговите аргументи. (Това е една от причините, поради която никога не е добра идея да стартирате команда и да въведете паролата си като аргумент на командния ред. Всеки друг потребител в системата може да стартира ps и да види изпълняваните от вас команди, заедно с всички възможни варианти и аргументи ).

Конвенцията, използвана отсега нататък, ще бъде командата (ps), последвана от опцията BSD "u", за да се определи изходното форматиране, а след това опциите на UNIX и GNU, както се изисква.

Някои опции за PS

Пускането на "ps" без аргументи показва списък с процеси със същия потребителски идентификатор като този на инвокера и свързан със същия терминал като този на invoker.

Показване на всички изпълнени процеси:

 ps u -e 

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

 ПС u-u `охями` 

Показване на всички процеси от текущия потребител, но сортирани по cpu (низходящо).

ЗАБЕЛЕЖКА: в командата по-долу използваме "-pcpu", за да постигнем нисък процент на използване на CPU. За възходящ, използвайте '+ pcpu' или просто 'pcpu'. Разгледайте страниците на човека за допълнителни спецификатори за сортиране. Някои често срещани са pmem (използване на паметта), start_time (времето, когато командата е била изпълнена) и времето (количеството CPU време, използвано от командата).

 ps u-u `whoami` -sort = -pcpu 

За да покаже всички процеси от текущия потребител, в дървовиден формат:

 ps u -jH-u `хеами` 

Използвайки тръби, ps може да се комбинира с главата, за да се покажат върховите процеси. Следващата команда се сортира първо с използването на паметта, след което тръби през главата, за да покаже процесите, използващи най-голямата памет. Главата показва първите десет линии по подразбиране, така че тази команда ще покаже първите девет процеса (Изходният хедър е първият ред).

Забележка: "% mem" и "pmem" са синоними, както и "% cpu" и "pcpu".

 ps u -u `whoami` --sort = -% mem | глава 

За да покажете същото за всички процеси, независимо от потребителя, използвайте опцията -e :

 ps u -e --sort = -% mem | глава 

заключение

Има буквално стотици опции (въпреки че някои са псевдоними) и бихме искали да чуем и да видим любимите си методи за използване. Моля, споделете коментарите по-долу.