Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Mandriva Linux
  3. Часть 4. Mandriva Linux для продвинутых пользователей
  4. 19. Введение в командную строку

2. Управление процессами

С точки зрения системы, приложения выполняются в одном или нескольких процессах, которые потребляют системные ресурсы, такие как память и процессорное время. Мы опишем некоторые команды для отслеживания этих процессов и управления ими, а, следовательно, и приложениями, которым они принадлежат.

2.1. Информация о процессах

Команда ps выдает, согласно указанному вами критерию, список процессов, которые выполняются в системе в настоящий момент.

Запуск ps без аргументов покажет только те процессы, что были запущены вами, и привязаны к используемому вами терминалу:

$ ps PID TTY TIME CMD
      18614 pts/3 00:00:00 bash 20173 pts/3 00:00:00 ps

Часто используемые опции:

  • a: отображает процессы, запущенные всеми пользователями;

  • x: отображает процессы, запущенные со всех терминалов (и даже те, что не имеют терминала), а не только из вашего;

  • u: для каждого процесса отображается имя пользователя, запустившего процесс, и время, когда он был запущен.

2.2. Управление процессами

Процессы контролируются с помощью сигналов. Команды kill и killall используются для того чтобы посылать сигналы процессам. Команда kill требует в качестве аргумента номер процесса, а команда killall требует имя процесса.

Помните, пожалуйста, что разные процессы по-разному реагируют на одни и те же сигналы. При послании сигнала вы не можете a priori ожидать, что процесс поведет себя так, как вы думаете.

kill
       <номер_процесса>
killall
       <имя_процесса>

Сигналы можно указывать по имени или по номеру. Чтобы увидеть список доступных сигналов, выполните kill -l. Наиболее часто используются следующие сигналы:

  • TERM или 15: этот сигнал посылается по умолчанию, если имя или номер не заданы. Он элегантно прекращает процесс.

  • STOP или 19: этот сигнал используется для временной приостановки процесса. Для возобновления работы ему следует послать сигнал CONT или 18.

  • KILL или 9: этот сигнал используется для принудительного прерывания процесса. Его часто используют, когда процесс больше ни на что не отвечает (он «заморожен»). Прекращение работы происходит внезапно.

Примеры:

  • kill 785: просит процесс под номером 785 завершить работу, дав ему шанс произвести все требуемые завершающие действия;

  • kill -KILL 785: вынуждает процесс под номером 785 завершиться, не предоставляя ему никаких возможностей произвести завершающие операции. Процесс прекращает работу немедленно;

  • killall -TERM make: просит прекратить работу все процессы по имени make, запущенные текущим пользователем.

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

2.3. Смесь ps и kill: top

top – это программа, одновременно выполняющая роль ps и kill, которая также используется для отслеживания процессов в реальном времени, выдавая информацию об использовании CPU и памяти, времени выполнения, и так далее, как показано на Рисунок 19.1, «Отслеживание процессов с помощью top».

Рисунок 19.1. Отслеживание процессов с помощью top

Отслеживание процессов с помощью top

Утилита top управляется исключительно клавиатурой. Команды зависят от регистра. Справку можно вызвать нажатием клавиши h. Наиболее полезными командами являются:

  • k: послать сигнал процессу. У вас спросят PID процесса, за которым следует ввести номер или имя посылаемого сигнала (по умолчанию это TERM или 15);

  • M: упорядочить вывод процессов по количеству потребляемой памяти (поле %MEM);

  • P: упорядочить вывод процессов по потребляемому времени CPU (поле %CPU): по умолчанию процессы сортируются именно так;

  • u: отображает процессы конкретного пользователя. Вас попросят ввести имя пользователя, а не его UID. Если имя не введено, будут показаны все процессы;

  • i: по умолчанию отображаются все процессы, даже спящие. Этой командой выводятся только выполняющиеся процессы (процессы, поле STAT которых показывает R, Running), и никакие другие. Повторное применение этой команды возвращает вас к отображению всех процессов.

Перекрёстные ссылки книги для 2. Управление процессами

  • 1. Операции с файлами
  • Вверх
  • 3. Документация по командам

Book navigation

  • Введение
  • Часть 1. Свободное ПО – каждый день!
  • Часть 2. Настройка и конфигурация вашей системы
  • Часть 3. Установка Mandriva Linux
  • Часть 4. Mandriva Linux для продвинутых пользователей
    • 19. Введение в командную строку
      • 1. Операции с файлами
      • 2. Управление процессами
      • 3. Документация по командам
      • 4. Что читать дальше
  • Где взять документацию
  • О создании данного Руководства
  • Универсальная Общественная Лицензия GNU (GPL)

Последние материалы

  • Эмулятор терминала Terminator
    3 hours 38 minutes ago
  • Приложение scanimage
    6 days 1 hour ago
  • Утилита sensors
    1 week 2 days ago
  • Сканер Rkhunter
    2 weeks 3 days ago
  • Программа resize2fs
    3 weeks 2 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru