Процессы
Определение
Процесс в Unix — это экземпляр запущенной программы.
Команды, запущенные в shell, являются процессами.
Например, команда, которая запускает три процесса:
cat /etc/passwd | head -n 10 | cut -d: -f1
Сам запущенный экземпляр shell также является процессом, как и любая другая программа, например, браузер или текстовый редактор.
Каждый процесс имеет свой уникальный идентификатор (PID, Process ID) и знает идентификатор процесса, который его запустил (PPID, Parent PID).
Атрибуты процесса
Текущая директория
Каждый процесс связан с определённой директорией — его текущей директорией (working directory). Все операции, для которых не указана конкретная директория, выполняются в текущей директории.
При запуске программы из shell, текущая директория наследуется от родительского процесса.
Команды для работы с текущей директорией:
pwd
выводит путь к текущей директории.
cd D
делает D текущей директорией.
PID и PPID
У процесса обязательно есть идентификатор — специальный уникальный номер — PID от Process ID, также процесс знает идентификатор родительского процесса, который его запустил: PPID от Parent Process ID
Получение справки о процессах
Для просмотра списка процессов можно использовать утилиту ps(1)
:
- ps: показать список процессов, запущенных в данном терминале.
- ps -e: показать полный список процессов.
- ps -H: показать процессы в древовидном виде.
- ps -u root: показать только процессы, запущенные пользователем root.
У ps
есть множество полезных ключей, подробнее можно прочитать в ps(1)
.
Для просмотра статуса процессов в реальном времени рекомендуется использовать top(1)
и htop.