Linux – популярная операционная система. Ее отличительная черта – система управления. В отличие от Windows, она базируется преимущественно на командах и терминале.

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

Определение

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

Защищенный экземпляр программы – это и есть процесс. Соответствующими компонентами можно управлять в операционной системе. В Linux для каждой программы создается отдельная «операция».

В рамках процесса на устройстве будут выделены:

  • процессорное время;
  • пространство в оперативной памяти;
  • иные системные ресурсы.

Каждый процесс имеет собственный идентификатор – PID или Process ID. По ним можно судить о запущенных операция в операционной системе.

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

Фоновый процесс – это команды и приложения, который подгружаются при запуске операционной системы. В основном они «сидят» в памяти, ожидая события, которое пошел запрос на запуск того или иного сервиса.

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

Просмотр запущенных команд

Linux – мультизадачная операционная система. Это значит, что в ней могут одновременно выполнять множество процессов (работать большое количество программ и приложений). Это обычная ситуация для современных ОС.

Список процессов, работающих на данный момент на устройстве, может быть выведен у Линукса несколькими способами. Для этого используются такие команды как:

  • top;
  • htot;
  • ps aux.

Все эти типы команд отвечают за отображение отдельных процессов и операции. Далее предстоит рассмотреть их более подробно.

Top

При помощи команды top можно увидеть информацию о системе в реальном времени. Она используется для демонстрации процессов, которые умещаются на экране. Htop – команда, которая работает по схожему принципу. Ее рекомендуется использовать, если хотите увидеть то, что запустил пользователь.

Команды и процессы в Линуксе: основы работы

Вот – пример того, что будет показано на экране при использовании команды top в Linux. Здесь:

  1. Строка 2 отвечает за задачи или команды. Это и есть процессы. В любой момент времени в операционной системе выполняются сразу несколько «операций». Большая из них – это системные. Некоторые «спят» — это нормальное явление. «Спящие» процессы находятся в ожидании события, инициирующего их запуск.
  2. Строка 3 – анализ оперативной памяти. Если используется много «пространства», переживать не стоит. Связано это с тем, что в Линуксе недавно открытые программы сохраняются в целях повышения быстродействия. Если другим операциям потребуется соответствующая память, она будет высвобождена.
  3. В строке 4 происходит анализ виртуальной памяти операционной системы. При большом использовании этого ресурса целесообразно задуматься над модернизацией устройства. Если на оборудовании изначально достаточно много виртуальной памяти, никаких проблем не возникнет.
  4. В строках 6-10 отображается информация о наиболее ресурсоемких процессах системы. Выводится список по убыванию. Обновляется в режиме реального времени. Это и есть работа операционный системы. В соответствующих строках пользователь увидит все, что происходит в ОС. Там есть два важных столбца – используемая память, а также процент использования ПЦ. Если один из этих показателей долгое время находятся на высоком уровне, стоит выяснить, почему так происходит. В столбце USER указан пользователь, который запустил тот или ином процесс Linux. PID – столбец, указывающий на ID «операций».

Это – только один из нескольких вариантов просмотра активных процессов на устройстве. Далее предстоит обратить внимание на еще одну команду.

PS

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

Более полезной командой станет ps [aux]. Она выведет все процессы, которые выполняются от имен всех пользователей ОС. Отвечает за отображение статистики, время старта и команду, которая его начала. При выводе всех операций, выполняемых в системе, рекомендуется использовать ps -e.

Соответствующий тип команды после обработки выдает достаточно громоздкий результат. Чаще всего его используют вместе с | в grep.

Выводимая информация – описание столбцов

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

Как называется заголовокЗа что отвечает
UIDИдентификатор (имя) пользователя владельца процесса. Здесь будет показано, кто запустил операцию.
PIDУникальный идентификатор процесса. Информация пригодится для дальнейшей работы с операцией.
PPIDИдентификатор родительского процесса
CОтвечает за приоритет процесса. Чем он выше, тем «важнее». Некоторые операции будут выполняться в ОС в первую очередь за счет соответствующего показателя.
STIMEВремя начала (старта) операции.
TTYТерминал запуска. Это системные консоли (помечены как console). Знак вопроса (?) укажет на характеристику операции. Если он есть, значит процесс выступает в качестве демона.
TIMEВыполнение процесса. Параметр, который указывает на длительной работы запущенной ранее операции.
CMDИмя команды или приложения.

Некоторые демоны, работающие в фоновом режиме, могут быть не связаны ни с какими терминалами. Это нормальное явление.

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

Опции

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

  • -e – состояние всех процессов;
  • -a – наиболее запрашиваемые;
  • -t – процессы из заданного терминала;
  • -p – информация только об указанном процессе;
  • -u – операции конкретного пользователя;
  • sort – сортировка по заданным параметрам.

Перечисленные виды опций особо полезны при работе с командой ps.

Удаление при сбое

Существуют различные виды команды управления процессами в операционных системах Linux (Ubuntu и не только). Иногда выполняемые на устройстве операции дают сбой. Завершить их «классическим» способом не получается – ответ на пользовательские действия просто не поступает.

Для завершения операции, которая дала сбой, необходимо использовать команду kill. Форма ее представления:

Kill [signal] <PID>

По умолчанию kill отвечает за завершение зависшего процесса. В этом случае команда отправляет стандартный параметр – -1. Соответствующий сигнал указывает на необходимость закрытия процесса. Начинать рекомендуется именно с такого алгоритма. Он является наиболее простым и коротким.

Если никакого прогресса от команды нет, потребуется задать параметр в записи, равный -9. Он указывает на необходимость принудительной остановки выполняемой операции.

Завершение

Процессы в Linux могут быть завершены пользователем. Существуют команды, помогающие прекратить работу запущенной операции:

  • sigterm – сохранение данных и завершение;
  • sigkill – принудительное завершение (без сохранения).

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

Процессы фоновые и переднего плана

Процессы и программы бывают разными. То, что запускаете в системе вручную, выводится «на передний план». Большая часть таких процессов выполняется за секунды. Пример – компиляция программы, обработка большого текстового файла. Если операция требует времени, в Linux нет необходимости ждать завершения обработки одного запроса. Можно сразу переходить к другому, а предыдущий оставить в «фоновом» режиме.

Наглядный пример – команда sleep. Она ждет, когда пройдет установленное количество времени, после чего завершает свою работу.

Для отображения информации о фоновых задачах и операциях «переднего плана» и их управления существуют различные команды:

  • jobs – отвечает за отображение работающих в фоне процессов;
  • fg <job number> – один процесс (указанный в скобках) с «фона» переводится на передний план.

Для перемещения операций между фоном и передним планом используется комбинация Ctrl + Z. После нажатия соответствующей последовательности текущий фоновый процесс будет остановлен, а затем перемещен на передний план.

Состояния

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

Всего в Linux пять состояний операций:

  1. Running. Указывает на обработку при помощи средств системного процессора. Выполняется на данный момент.
  2. Sleeping. Показывает состояние «сна». Операция ждет ввода от пользователя или другого процесса.
  3. Waiting. Статус, при котором processes получили входные данные, необходимые для работы. Операция будет выполнена, как только подойдет ее очередь.
  4. Stopped – операция остановлена. Она не будет выполняться даже тогда, когда подойдет ее очередь. Исключение – если пользователь передаст сигнал на работу.
  5. Zombie. Сигнал, указывающий на то, что процесс мертв. Он существует в таблице процессов, но никаких ресурсов на устройстве не занимает. Сохраняется до тех пор, пока родительская операция не разрешит ему «умереть». Это состояние также называется «неработающим процессом».

Управление процессами в Linux поддерживает еще и расстановку приоритетов. Эта команда имеет значимость для всей ОС.

Приоритеты и их установка

Приоритет – это очередность выполнения команды. Чем выше соответствующий показатель, тем «важнее» действие, и тем быстрее оно будет обрабатываться системой.

Для настройки приоритета используется команда nice. Всего у нее 40 значений, среди которых:

  • -20 – это наиболее высокий параметр;
  • +19 – самый низкий показатель.

По умолчанию большинство Linux-процессов получают значение nice, равное 0. Дочерняя команда наследует приоритет «родителя».

Чтобы увидеть niceness для запущенных операций, необходимо использовать ps и опцию –l. Получатся следующие результаты:

Команды и процессы в Линуксе: основы работы

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

Команды и процессы в Линуксе: основы работы

А вот так запускается программа на более высоком приоритете. Для этого значение «важности» указывается через тире:

Команды и процессы в Линуксе: основы работы

Здесь больше наглядных примеров работы с командами. Лучше освоить их помогут дистанционные компьютерные онлайн-курсы.

Интересует Linux и системное администрирование? Добро пожаловать на курс в Otus!