Процесс в Linux — это исполняемая программа
Самый простой способ увидеть запущенные процессы, запустить ps
[root@almalinux sysadmin]# ps
PID TTY TIME CMD
41417 pts/0 00:00:00 sudo
41425 pts/0 00:00:00 bash
41426 pts/0 00:00:00 bash
41946 pts/0 00:00:00 ps
Чтобы увидеть больше информации о процессах можно воспользоваться
ps -ef
или
ps -aux
Данные опции позволят дополнительно увидеть PID (идентификатор процесса), время запуска, команды, с помощью которых был запущен процесс и другое.
Запустим команду ниже (опции less и -S добавляют удобства при просмотре) и рассмотрим некоторые значения
ps -aux | less -S
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER — пользователь, который запустил процесс. Несмотря на то, что много процессов запускаются от имени суперпользователя, предпочтительнее создавать сервисные учетные записи, с целью не навредить системе, в случае уязвимости или ошибки.
PID — идентификатор процесса (для каждого свой). При завершении программа освобождает PID и позже он может быть занят уже другой программой. По сути PID нужны нам для управления процессами.
CPU — процентное использование процессора процессом
MEM — процентное использование оперативной памяти процессом
START — время, когда процесс был запущен
TIME — общее время выполнения процесса
COMMAND — команда, которая была использована для запуска процесса
Если вам необходимо следить за каким-либо процессом и не запускать постоянно команды выше, можно сделать так
watch "ps -aux | grep bash"
watch (по умолчанию каждые 2 секунды) обновляет вывод другой команды, по сути практически в режиме реального времени, мы можем отследить работу процесса
procfs — виртуальная файловая система, представляющая информацию о системе и процессах через файлы и каталоги (в Linux — все есть файл). Создается ядром и монтируется в /proc
[root@almalinux sysadmin]# cd /proc/
[root@almalinux proc]# ls
[root@almalinux proc]# cat version
Linux version 5.14.0-362.13.1.el9_3.x86_64 (mockbuild@x64-builder01.almalinux.org) (gcc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-2), GNU ld version 2.35.2-42.el9) #1 SMP PREEMPT_DYNAMIC Thu Dec 21 07:12:43 EST 2023
[root@almalinux proc]# cat loadavg
0.00 0.00 0.00 1/309 42797
Здесь мы можем посмотреть информацию о версии ядра или среднюю загрузку системы
Для более информативного отображения есть утилита top и htop
Для установки htop в Alma
htop
dnf install epel-release -y
dnf install htop -y
Они бывают полезны когда какой-то процесс начинает потреблять слишком много ресурсов или просто зависает
Запустим top и пройдемся по основным параметрам
top - 13:22:13 up 1:33, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 178 total, 1 running, 177 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7675.9 total, 6303.9 free, 813.2 used, 824.8 buff/cache
MiB Swap: 8076.0 total, 8076.0 free, 0.0 used. 6862.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
Первая строка показывает нам текущее время, сколько работает система, количество залогиненных сессий, среднюю загрузку.
Вторая строка — общее количество запущенных процессов, выполняемых в данный момент, спящих (в ожидании получения данных и т.д.), остановленных, зомби (процесс, завершивший свое выполнение, но присутствующий в списке процессов, так как родительский процесс еще не прочитал статус завершения дочернего процесса).
Строки дальше посвященные CPU и RAM надеюсь понятны.
Для завершения процесса можно использовать команду kill
kill отправляет сигнал завершения (SIGTERM). В случае если процесс не реагирует, его можно завершить принудительно (SIGKILL) с помощью kill -9
Откроем второй терминал и запустим nano. Найдем его в списке процессов и в первом терминале выполним
[root@almalinux proc]# kill 43284
Во втором терминале nano закроется и мы увидим
[root@almalinux sysadmin]# nano
Received SIGHUP or SIGTERM
[root@almalinux sysadmin]#
Далее откроем nano еще раз и выполним
kill -9 43286
Во втором терминале мы увидим
Killed
[root@almalinux sysadmin]#
Что касается htop, то принцип его работы схож с top, лично я использую его чаще, так как выглядит приятнее и информативнее, в нем удобнее сортировать процессы, но в целом, это уже дело вкуса