Запущенные процессы linux centos

Команда ps

Thank you for reading this post, don’t forget to subscribe!

В Linux запу­щен­ный экзем­пляр про­грам­мы назы­ва­ет­ся про­цес­сом. Ино­гда при рабо­те на ком­пью­те­ре с Linux вам может пона­до­бить­ся узнать, какие про­цес­сы запу­ще­ны в дан­ный момент.

Есть несколь­ко команд, кото­рые вы може­те исполь­зо­вать, что­бы най­ти инфор­ма­цию о запу­щен­ных про­цес­сах, ps и top явля­ют­ся наи­бо­лее часто исполь­зу­е­мы­ми из них.

В этой ста­тье мы пого­во­рим о том, как исполь­зо­вать коман­ду ps для отоб­ра­же­ния теку­щих запу­щен­ных про­цес­сов и отоб­ра­же­ния инфор­ма­ции об этих процессах.

Как использовать команду ps

Общий син­так­сис коман­ды ps выгля­дит сле­ду­ю­щим образом:

По исто­ри­че­ским при­чи­нам и из сооб­ра­же­ний сов­ме­сти­мо­сти коман­да ps при­ни­ма­ет несколь­ко раз­лич­ных типов параметров:

  • Опции сти­ля UNIX , перед кото­ры­ми сто­ит одна черточка.
  • Вари­ан­ты сти­ля BSD , исполь­зу­е­мые без тире.
  • Длин­ные опции GNU , начи­на­ю­щи­е­ся с двух тире.

Все типы опций могут быть сме­шан­ны­ми, но в неко­то­рых осо­бых слу­ча­ях могут воз­ни­кать кон­флик­ты, поэто­му луч­ше при­дер­жи­вать­ся одно­го типа опций. Опции BSD и UNIX могут быть сгруппированы.

В про­стей­шей фор­ме, когда исполь­зу­ет­ся без какой-либо опции, ps будет напе­ча­та­но четы­ре столб­ца инфор­ма­ции для мини­мум двух про­цес­сов, запу­щен­ных в теку­щей обо­лоч­ке, самой обо­лоч­ки и про­цес­сов, кото­рые выпол­ня­ют­ся в обо­лоч­ке при выпол­не­нии команды.

Вывод вклю­ча­ет в себя инфор­ма­цию о shell (bash) и про­цес­се, запу­щен­ном в этой обо­лоч­ке (вве­ден­ная вами коман­да ps):

Четы­ре колон­ки поме­че­ны PID , TTY , TIMEи CMD .

  • PID- Иден­ти­фи­ка­тор про­цес­са. В боль­шин­стве слу­ча­ев при запус­ке psко­ман­ды наи­бо­лее важ­ной инфор­ма­ци­ей, кото­рую ищет поль­зо­ва­тель, явля­ет­ся иден­ти­фи­ка­тор про­цес­са. Зна­ние PID поз­во­ля­ет убить сбой­ный процесс.
  • TTY – Назва­ние управ­ля­ю­ще­го тер­ми­на­ла для процесса.
  • TIME – Сово­куп­ное вре­мя ЦП про­цес­са, пока­зан­ное в мину­тах и секундах.
  • CMD – Имя коман­ды, кото­рая исполь­зо­ва­лась для запус­ка процесса.

Вывод выше не очень поле­зен, так как он не содер­жит мно­го инфор­ма­ции. Насто­я­щая сила коман­ды ps появ­ля­ет­ся при запус­ке с допол­ни­тель­ны­ми опциями.

Коман­да ps при­ни­ма­ет огром­ное коли­че­ство опций, кото­рые мож­но исполь­зо­вать для отоб­ра­же­ния опре­де­лен­ной груп­пы про­цес­сов и раз­лич­ной инфор­ма­ции о про­цес­се, но для повсе­днев­но­го исполь­зо­ва­ния тре­бу­ет­ся лишь несколь­ко из них.

Читайте также:  Клиент сервер для linux

Коман­да ps чаще все­го исполь­зу­ет­ся со сле­ду­ю­щей ком­би­на­ци­ей параметров:

Источник

Управление процессами и наблюдение за ними в дистрибутивах Linux (CentOS)

В данном материале мы рассмотрим, как основные команды, предусмотренные в дистрибутивах Linux по умолчанию для просмотра, управления и мониторинга текущих процессов, так и сторонние средства, дающие более расширенный доступ к просмотру и анализу текущих системных процессов.

Аренда выделенного сервера

  • Intel® Xeon® E3-1270 v2
    3.5 , 4 ядра
  • 16Gb DDR3
  • 2 x SSD: 240Gb, Ent
  • 1 x SATA3: 1 TB

Хорошее решение, для задач средней ложности.
Любой выбранный сервер, всегда можно улучшить в процессе работы, если вы поймете что вам не достаточно производительности.

  • Intel® Xeon® E3-1270 v6
    3.8 , 4 ядра
  • 32Gb DDR4
  • 2 x SSD: 480Gb, Ent
  • 1 x SATA3: 2 TB

Аренда сервера для удаленного доступа и 1С.
Позволит экономить и безопасно работать на арендованном сервере, через удаленный рабочий стол и Веб браузер.

Работа с запущенными процессами

На Linux-серверах, как и любых других серверных машинах, имеется возможность запуска приложений, которые компьютер рассматривает в виде процессов. При обработке системой закадрового, низкоуровневого управления жизненными циклами процессов, пользователь зачастую нуждается в другом способе взаимодействия с ОС, чтобы иметь возможность управлять процессами на высоких уровнях. Для начала рассмотрим простейшие моменты, связанные с управлением процессами средствами инструментов, интегрированных в дистрибутивы Linux.

Команда top

Это наиболее простой способы выяснить, какие процессы запущены на серверной машине в настоящее время:

  • top
    top — 15:14:40 up 46 min, 1 user, load average: 0.00, 0.01, 0.05
    Tasks: 56 total, 1 running, 55 sleeping, 0 stopped, 0 zombie
    Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 1019600k total, 316576k used, 703024k free, 7652k buffers
    Swap: 0k total, 0k used, 0k free, 258976k cached
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 init
    2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
    3 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
    6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    7 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0
    8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
    9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
    10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs

В верхней части выводимой информации предоставлена статистика работы системы, а если конкретнее, нагрузка на систему и число выполняемых задач. В нижней части отображается информация по запущенным процессам и статистики их использования.

Читайте также:  Проверить какие порты слушаются linux

Команда htop

Посредством этой усовершенствованной версии команды top можно получать более развернутые данные по процессам. Она доступна в хранилищах. Для установки используем:

sudo apt-get install htop

Использование ps для получения процессов в виде списка

Посредством приведенных выше команд можно получить удобный интерфейс, позволяющий мониторить запущенные процессы, который аналогичен более привычному для многих диспетчеру задач. Однако такого инструментария далеко не всегда достаточно в плане гибкости и не позволяют адекватно охватывать требуемые системные сценарии.

Для получения более полной картины процессов можно запустить такую команду:

  • ps aux
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.2 24188 2120 ? Ss 14:28 0:00 /sbin/init
    root 2 0.0 0.0 0 0 ? S 14:28 0:00 [kthreadd]
    root 3 0.0 0.0 0 0 ? S 14:28 0:00 [ksoftirqd/0]
    root 6 0.0 0.0 0 0 ? S 14:28 0:00 [migration/0]
    root 7 0.0 0.0 0 0 ? S 14:28 0:00 [watchdog/0]
    root 8 0.0 0.0 0 0 ? S< 14:28 0:00 [cpuset]
    root 9 0.0 0.0 0 0 ? S < 14:28 0:00 [khelper]. . .

Данные параметры отображают ps процессы, которые принадлежат всем пользователям, вне зависимости от пользовательского терминала.

Использование PID процессорных идентификаторов

В Unixо-подобных системах для каждого процесса существует собственный PID-идентификатор, посредством которого ОС способна отслеживать и идентифицировать любую активность процессов. Чтобы узнать идентификатор того или иного процесса можно воспользоваться следующей командой:

Таким образом, можно запросить идентификатор процесса и вернуть его. В процессе запуска первый запущенный процесс называется init с PID 1. Он отвечает за инициацию/запуск всех остальных системных процессов. Существует такое понятие, как родительский процесс, который ответственен за запуск других процессов. В случае, когда порождающие процессы прекращаются, дочерние процессы также прекращают работу. PID родительских процессов называют PPID. Когда пользователь общается с операционной системой и нуждается в чтении процессов, имеет место перевода идентификаторов в имена процессов и наоборот. Именно для этого различные утилиты отправляют свой PID.

Один из наиболее распространенных способов передачи сигналов посредством PID является команда kill. По умолчанию ее функционал сводится к завершению процесса (kill PID_of_target_process). При выполнении данной команды всем процессам отправляется TERM-сигнал. Таким образом, рабочая программа выполняет требуемые операции по очистке и безопасно завершает работу.

Читайте также:  Apt search linux image

Наблюдаем за процессами посредством утилиты strace

Утилита strace присутствует во многих Linux-дистрибутивах по умолчанию и зачастую используется в целях отладки, обучения и диагностики. Посредством strace можно решать самые разные задачи, включая мониторинг старта/завершения процессов, а также избавить себя от проблем с поиском возникших программных сбоев без доступа к исходным кодам.

Также данную программу можно использовать при необходимости получения/отправки bug-репортов для разработчиков того или иного ПО. Средствами данного инструмента можно воочию увидеть, как именно работает запущенная программа в подробностях.

Особенности запуска

Системный вызов представляет собой обращение программ к системному ядру для выполнения того или иного действия. Такие вызовы необходимы потому, что процесс не способен взаимодействовать с системой непосредственным образом.

Работа представленной утилиты заключается в том, что она отслеживает системные вызовы конкретных процессов и получаемые ими сигналы. В принципе может иметь место ситуация, в которой процессы не посылают никаких системных вызовов. В таких случаях strace, естественно, не способна ничего отследить.

Для запуска утилиты strace используется команда

После ее запуска происходит запуск программы program_name с выведением в поток стандартных выводов сообщений о выполняемых вызовах в системе. Существуют текстовые редакторы, такие как Vim, которые оснащены цветной подсветкой вывода strace, а это существенно упрощает анализ крупных файлов с трассировочными текстами.

Как вариант strace может запускаться для трассировки уже запущенных процессов. Для этого как раз потребуется PID требуемого процесса, о чем мы говорили выше. Этот идентификатор необходимо передать, как параметр в опциях –p для утилиты:

Анализ вывода – наиболее полезная функция данной программы. Структура для строй вывода strace предполагает, что сначала идет имя системного вызова, после чего в круглых скобках будет выведен список параметров, которые переданы вызову. Последний выводящийся информационный блок, который отображается после знака «=», отображает код, по которому завершается системный вызов. В качестве примера приведем несколько строк кода с анализом вывода посредство strace:

  • execve(«/bin/ls», [«/bin/ls»], [/* 37 vars */]) = 0
  • brk(0) = 0x9841000
  • access(«/etc/ld.so.nohwcap», F_OK) = -1 ENOENT (No such file or directory)
  • mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb779e000
  • access(«/etc/ld.so.preload», R_OK) = -1 ENOENT (No such file or directory)
  • open(«/etc/ld.so.cache», O_RDONLY) = 3
  • fstat64(3, ) = 0
  • mmap2(NULL, 78866, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb778a000
  • close(3) = 0

Источник

Оцените статью
Adblock
detector