103.5 Управление процессами в Linux
Студент должен уметь создавать, отслеживать и завершать процессы
Изучаем :
- запуск задач в активном и фоновом режимах;
- настройку выполнения задачи после выхода из системы;
- способы отслеживания и сортировки активных процессов;
- завершение процессов.
**Термины и утилиты: **
- &
- bg
- fg
- jobs
- kill
- nohup
- ps
- top
- free
- uptime
- pgrep
- pkill
- killall
- screen
Linux содержит в себе множество инструментов для управления запущенными процессами: от сортировки, отслеживания состояния и загрузки системы до перевода процессов в фоновый режим и обратно.
Посмотреть запущенные процессы в текущей консоли можно при помощи команды jobs. Для вывода всех запущенных в данный момент процессов (независимо от консоли) используется команда ps с различным набором ключей, например:
Ps** aux** (вывести процессы всех пользователей);
Можно вывести процессы в консоль, отображая иерархию из взаимосвязи командой pstree.
Для отображения идентификаторов процессов по определенному критерию можно использовать команду pgrep , например:
pgrep -** l **** - u root **** ** (отобразить все процессы пользователя root_)_
Чтобы запустить процесс в фоновом режиме необходимо указать ключ & , например:
Sleep **999 & ** (запустить задачу sleep 999 в фоновом режиме);
Для перевода процесса из фонового режима в активный используется команда fg , обратно – bg. В качестве аргумента команды следует указать номер процесса (его можно увидеть на выводе команды jobs).
Для того чтобы процесс продолжал выполняться после выхода пользователя из системы, его следует запускать командой nohup , например:
nohup ** **** sleep **** 1000 & ** _(запустить процесс "_sleep 1000" в фоновом режиме, и выполнять его даже в случае выхода пользователя из системы);
Для остановки процесса используется команда kill , например:
kill 2625 _ (выключить процесс с_ PID_=2625);_
killall** sleep **** ** (выключить все процессы с именем sleep для текущего пользователя) ;
Для остановки процессов по указанному критерию можно использовать команду pkill , например:
pkill** refox **** ** (остановить процесс, в имени которого есть символы " refox");
Для просмотра информации о работающих процессах в режиме реального времени используется диспетчер задача top. Используя его можно сортировать запущенные задачи по различным критериям и останавливать их (клавиша K_)_ мягко (sigterm) и жестко (sigkill).
Для отображения информации о времени работы системы и среднем времени загрузки АЧ используется команда uptime.
Для отображения информации о загрузке ОЗУ и раздела подкачки используется команда free.
Кроме того, Linux поддерживает работу с несколькими «экранами» при помощи команды screen. Она позволяет, в числе всего прочего, сворачивать запущенные приложения в консоли, в рамках той же консоли, например:
screen -** S yandex ping ya. ru ** (создать экран с именем yandex для команды ping ya. ru );
screen –** ls **** ** (показать свернутые экраны);
screen -** r yandex ** (развернуть экран с именем yandex_)._