Categories: Хакинг

Основы Linux. Часть 8 ( управление процессами )

Содержание:

Продолжаем развивать наши навыки по работе с Linux. В этой статье мы рассмотрим системные процессы и управление ими.

В Linux

процессами называют программы, которые уже работают и находятся в оперативной памяти. Обычно в наших компьютерах выполняются сотни процессов одновременно. Если они являются системными, то линуксоиды называют их демонами (от слова daemon или demon). Часто можно видеть, что название процесса заканчивается на букву «d», например, httpd
— процесс или демон, который отвечает за работу службы http.

Шаг 1. Как узнать какие процессы сейчас запущены

Мы можем посмотреть на все запущенные процессы, если в консоли выполним команду:

ps aux

Флаги этой команды обеспечивают вывод информации обо всех процессах (a — all), пользователе (u — user), и процессах, не связанных ни с одним открытым терминалом (x — executed). Это мой любимый набор флагов для команды ps, поскольку он позволяет видеть, какой пользователь запустил тот или иной процесс, и сколько он потребляет ресурсов.

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

user — пользователь

PID — идентификатор процесса (process identifier)

%CPU — % потребления ресурсов центрального процессора

%RAM — % потребления оперативной памяти

Если нам нужно увидеть все процессы с ограниченной дополнительной информацией, то достаточно ввести в консоль:

ps -A


Теперь мы видим все запущенные процессы, но без данных о расходовании ресурсов CPU и оперативной памяти. Обратите внимание, что airbase-ng в списке имеет PID 5143, а последним процессом является как раз команда ps.
Номера процессов или PID крайне важны для работы в Linux, поскольку чаще всего для управления каким-нибудь процессом нужно знать его PID. Вы могли читать в материалах по Metasploit, что PID процесса становится критически важным для взлома системы жертвы.

Шаг 2. Команда top

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

top


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

Шаг 3. Как «убить» процесс

Иногда нам нужно остановить процессы в Linux. Команда, которую мы при этом выполняем, называется kill. Она очень полезна в тех ситуациях, когда есть процесс, который продолжает работать и использовать системные ресурсы, даже после того, как мы попытались его остановить. Эти процессы иногда называются зомби-процессами.
Мы можем убить любой процесс, просто набрав kill и идентификатор процесса (PID). Например, чтобы убить мой airbase-ng, я могу просто напечатать:

kill 5143


На скриншоте видно, что процесс airbase-ng был остановлен.
Существует много типов «убийств». Работа команды kill по умолчанию (когда мы используем команду kill без дополнительных параметров) — это kill 15 или сигнал завершения. Это позволяет процессу осторожно закончить работу.
Иногда при выполнении команды kill с параметрами по умолчанию, процессы по-прежнему отказываются прекращать работу. В этом случае мы должны использовать настоящего терминатора — kill-9, который пленных не берет и отдает приказ ядру Linux немедленно прекратить работу этого процесса.

Шаг 4. Изменение приоритета процесса

Каждому процессу в Linux присваивается номер приоритета. Этот номер определяет, насколько важен процесс и где он находится в списке с точки зрения использования системных ресурсов. Номера варьируются от 0 до 127, где 0 — наивысший приоритет, а 127 — самый низкий.
Даже будучи пользователем root или системным администратором, мы не можем напрямую определить приоритет процесса, поскольку это работа ядра. Но мы можем намекнуть ядру, что хотели бы, чтобы процесс работал с более высоким приоритетом. Это можно сделать с помощью команды nice. Значения nice варьируются от -20 до +19, где более низкие значения определяют более высокий приоритет.
Мы можем установить значение команды nice для процессов, используя параметр -n, потом значение nice, а затем команду, которую мы хотим запустить. Если мы хотим запустить наш airbase-ng процесс с наивысшим приоритетом, то нужно в консоли написать:

nice -n -20 airbase-ng

Чтобы уменьшить приоритет команды airbase-ng, нам нужно использовать команду renice. Команда renice требует просто указать уровень приоритета и только PID процесса (в отличие от команды nice). Например:

renice 15 5143


Теперь видно, что применение команды renice уменьшило приоритет airbase-ng с -20 (наивысшего) до 15 (сравнительно низкого).

Шаг 5. Перенос процесса в фоновый режим

Когда мы запускаем команду из терминала, запущенный процесс начинает контролировать данный терминал, вплоть до тех пор, пока этот процесс не будет завершен. Если это непрерывный процесс, похожий на работу airbase-ng, то он будет удерживать контроль, пока мы его не остановим. И до этого времени мы не сможем использовать этот терминал.
Если мы хотим продолжать использовать конкретный терминал, то мы можем отправить запущенный процесс в фоновый режим, и затем вернуть себе контроль над терминалом. Для запуска команды в фоновом режиме нам нужно в конце команды добавить амперсанд — &. Чтобы запустить airbase-ng в фоновом режиме, команда будет выглядеть так:

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 11 mon0 &

Если нужно «вытащить» команду из фонового режима обратно, просто вводим fg (от слова foreground — «передний план»). Чтобы перенести уже запущенный процесс в фоновый режим нужно нажать комбинацию клавиш Ctrl + Z — это завершит данный процесс. Затем использовать команды bg (от слова background — «задний план», фоновый режим) с указанием PID процесса и это передвинет его в фоновый режим.
Вот и все на сегодня…
Следите за обновлениями серии «Основы Linux». Если вы еще не видели другие статьи этого цикла, то обязательно почитайте ( 1, 2 , 3 , 4 , 5 , 6 , 7).

HelpUAdmin

Recent Posts

Windows 10 стала работать медленнее после установки обновления? Исправим это

Ваш компьютер на Windows 10 перестал быть быстрым после обновления системы? Мы подскажем, как устранить…

3 года ago

Описание приложения-чата по приглашениям Clubhouse

Это приложение для iPhone основано на приглашениях и аудио. С его помощью можно всё равно…

3 года ago

Изменение почтового клиента по умолчанию в iOS 14 на Outlook, Spark, Gmail и другие

Одним из самых значительных изменений в операционной системе iOS 14 является возможность менять приложения по…

4 года ago

Включение пузырей уведомлений в чатах на Android 11

В системе Android 10 появился фреймворк для пузырей чатов, популярность которым принёс Messenger. Новая система…

4 года ago

Как настроить беспроводную отладку в Android 11

От загрузки в режим Fastboot при помощи одной команды до установки модов без рута, есть…

4 года ago

Главные проблемы Android 11 Beta и следует ли устанавливать её

Бета-версия операционной системы Android 11 в настоящее время доступна для устройств Google Pixel. Нужно посетить…

4 года ago