Команды управления процессами линукс

Команды для управления процессами в Linux

В этой статье мы обсудим управление процессами. Процесс в Linux — это не что иное, как исполняемая программа. То есть это запущенный экземпляр программы. Любая команда, которую вы выполняете, запускает процесс.

Типы процессов

В Linux процессы могут быть двух типов:

  • Процессы переднего плана — зависят от ввода пользователя. Они также называются интерактивными процессами.
  • Фоновые процессы — работают независимо от пользователя. Называются неинтерактивными или автоматическими процессами.

Состояния процесса в Linux

Процесс в Linux после его создания и до завершения может проходить через разные состояния, а именно:

  • Running (выполняется) — процесс в состоянии выполнения, то есть он запущен или готов к запуску.
  • Sleeping (спящий) — процесс находится в спящем состоянии, пока ожидает доступного ресурса:
    • Interruptible sleep (прерывистый сон) — процесс в состоянии прерывистого сна может просыпаться для обработки сигналов.
    • Uninterruptible sleep (Непрерывный сон) — процесс не будет просыпаться для обработки сигналов.

    Команды для управления процессами

    В Linux доступны две команды для отслеживания запущенных процессов — Top и Ps.

    1: Команда top

    Для отслеживания запущенных процессов вы можете выполнить команду top:

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

    • PID: уникальный идентификатор процесса, присвоенный каждому процессу.
    • User: имя владельца процесса.
    • PR: приоритет, присвоенный процессу при планировании.
    • NI: значение ‘nice’ процесса.
    • VIRT: объем виртуальной памяти, которую занимает процесс.
    • RES: объем физической памяти, используемой процессом.
    • SHR: объем памяти, разделяемой с другими процессами.
    • S: состояние процесса:
      • “D” = непрерывный сон
      • “R” = запущен
      • “S” = спящий
      • “T” = отслежен или остановлен
      • “Z” = зомби

      Перемещаться вверх и вниз по списку можно клавишами со стрелками вверх/вниз. Для выхода из команды top нажмите q. Чтобы завершить процесс, выделите его клавишами со стрелками и нажмите ‘k’.

      В качестве альтернативы вы также можете выполнить команду kill, которую мы рассмотрим позже.

      2: Команда ps

      ps — это сокращение от “Process Status”. Она выводит запущенные в данный момент процессы. Но, в отличие от команды top, результат не генерируется в реальном времени.

      Рассмотрим ее вывод подробнее:

      • PID — идентификатор процесса.
      • TTY — тип терминала.
      • TIME — общее время работы процесса.
      • CMD — имя команды, которая запускает процесс.

      Для вывода дополнительной информации с помощью команды ps добавьте параметр -u:

      На скриншоте вы можете увидеть следующие данные:

      • %CPU — количество вычислительной мощности, которую занимает процесс.
      • %MEM — объем памяти, занимаемой процессом.
      • STAT — состояние процесса.

      Хотя команда ps выводит только запущенные в данный момент процессы, с помощью нее можно посмотреть список всех процессов:

      Эта команда выводит список даже тех процессов, которые в данный момент не запущены.

      3: Остановка процесса

      Чтобы остановить процесс в Linux, выполните команду “kill”. kill отправляет сигнал процессу.

      Есть разные типы сигналов, которые можно отправлять. Однако самый частый — “kill -9”, который является “SIGKILL”.

      Вы можете посмотреть все доступные сигналы с помощью следующей команды:

      Сигнал по умолчанию — 15, то есть SIGTERM. Это означает, что если вы просто выполняете команду kill без номера, она отправляет сигнал SIGTERM.

      Синтаксис для остановки процесса:

      В качестве альтернативы вы также можете выполнить:

      Эта команда отправит процессу сигнал “SIGKILL”. Ее следует выполнять в случае, если процесс игнорирует обычный запрос на остановку.

      4: Изменение приоритета процесса

      В Linux между процессами можно расставлять приоритеты. Значение приоритета для процесса называется ‘Niceness’, оно может варьироваться от -20 до 19. 0 — значение по умолчанию.

      Четвертый столбец в выводе команды top — это столбец для значения niceness.

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

      $ nice -n [value] [process name]

      Для изменения значения nice уже запущенного процесса выполните:

      Заключение

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

      Читайте также:

      Источник

      Работа с процессами в Linux

      Обновлено

      Обновлено: 29.03.2023 Опубликовано: 09.11.2017

      Список процессов

      USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
      root 661 0.0 0.0 4072 8 tty1 Ss+ Jul03 0:00 /sbin/mingetty
      root 662 0.0 0.0 4072 8 tty2 Ss+ Jul03 0:00 /sbin/mingetty
      root 16355 0.0 0.0 171636 3308 pts/0 S 15:46 0:00 sudo su
      root 16366 0.0 0.0 140896 1556 pts/0 S 15:46 0:00 su
      root 16368 0.0 0.0 108316 1944 pts/0 S 15:46 0:00 bash
      root 18830 0.0 0.0 110244 1172 pts/0 R+ 16:20 0:00 ps u

      • USER — учетная запись пользователя, от которой запущен процесс.
      • PID — идентификатор процесса.
      • %CPU — потребление процессорного времени в процентном эквиваленте.
      • %MEM — использование памяти в процентах.
      • VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
      • RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
      • TTY — терминал, из под которого был запущен процесс.
      • STAT — текущее состояние процесса. Могут принимать значения:
        1. R — выполнимый процесс;
        2. S — спящий;
        3. D — в состоянии подкачки на диске;
        4. T — остановлен;
        5. Z — зомби.
        6. W — не имеет резидентных страниц;
        7. < —высоко-приоритетный;
        8. N — низко-приоритетный;
        9. L — имеет страницы, заблокированные в памяти.
      • START — дата запуска процесса.
      • TIME — время запуска процесса.
      • COMMAND — команда, запустившая процесс.

      Ключи

      Ключ Описание
      -A Все процессы.
      -a Запущенные в текущем терминале, кроме главных системных.
      -d Все, кроме главных системных процессов сеанса.
      -e Все процессы.
      f Показать дерево процессов с родителями.
      T Все на конкретном терминале.
      a Все, связанные с текущим терминалом и терминалами других пользователей.
      r Список только работающих процессов.
      x Отсоединённые от терминала.
      u Показать пользователей, запустивших процесс.

      Примеры

      Поиск процесса с помощью grep:

      Убить процесс

      Останавливаем процесс по его PID:

      Если процесс не завершается, убиваем его принудительно:

      Остановить все процессы с именем nginx:

      Как и в случае с kill, можно это сделать принудительно:

      Можно остановить все процессы конкретного пользователя:

      Ищем процесс по имени, извлекаем его PID и завершаем его:

      kill `ps aux | grep ‘apache’ | awk »`

      * обратите внимание, что запрос может вывести несколько процессов, которые будут попадать под критерии поиска — в таком случае, они будут завершены все.

      Подробная информация о процессе

      Для каждого процесса создается каталог по пути /proc/ , в котором создаются папки и файлы с описанием процесса.

      Примеры использования /proc/

      Адрес в ячейках оперативной памяти, которые занял процесс:

      Команда, которой был запущен процесс:

      Символьная ссылка на рабочий каталог процесса:

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

      Увидеть ссылки на дескрипторы открытых файлов, которые затрагивает процесс:

      Подробное описание на сайте man7.org.

      Потребление ресурсов процессами

      Для просмотра статистики потребления ресурсов используем утилиту top:

      PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
      21059 root 20 0 157884 2280 1496 R 18,8 0,1 0:00.03 top
      1 root 20 0 190996 2964 1652 S 0,0 0,1 6:49.99 systemd
      2 root 20 0 0 0 0 S 0,0 0,0 0:01.78 kthreadd
      3 root 20 0 0 0 0 S 0,0 0,0 0:24.75 ksoftirqd/0
      5 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kworker/0:0H

      • PID — идентификатор процесса.
      • USER — имя учетной записи, от которой запущен процесс.
      • PR — приоритет процесса.
      • NI — приоритет, выставленной командой nice.
      • VIRT — объем виртуальной памяти, потребляемый процессом.
      • RES — объем используемой оперативной памяти.
      • SHR — количество разделяемой памяти, которое используется процессом.
      • S — состояние процесса.
      • %CPU — процент использования процессорного времени.
      • %MEM — потребление оперативной памяти в процентах.
      • TIME — использование процессорного времени в секундах.
      • COMMAND — команда, которая запустила процесс.

      Источник

      Читайте также:  Linux mint настройка несколько мониторов
Оцените статью
Adblock
detector