Files
lpic_1-101/103_5.md
T
Kirill Semaev 321aabe33b build flow
2018-04-15 14:43:14 +03:00

73 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**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__)._