Администрирование Linux $ Процессы



Процессы в линуксе крайне важная хуйня, с помощью которой мы можем управлять памятью/ресурсами пк, назначать приоритет процессам, останавливать или убивать их. Основные понятия здесь - это

fg (фоновый режим), в котором процесс запускается в фоне - делает свою задачу и возвращает результат, но параллельно можем работать дальше в консоле/

bg - активный процесс, что не позволяет манипулировать консолью до завершения работы процесса (стандартный результат)



Также стоит упомянуть, что при закрытии или выходе из сессии, процессы, запущенные этим пользователем - умирают, а для предотвращения этой хуйни существует много команд, основной которой является nohup, есть и screen (ебала, которая внутри консоли запускает другие окна - сессии).



Из основных команд для работа с процессами:

ps
- вывод инфы об активных процессах (в режиме снапшота)

pstree - вывод дерева процессов (на верхнем углу которого виднеется ваш загрузчик)

pgrep - поиск процесса (man pgrep для деталей) + сигналы к ним

pkill - завершение процесса отправкой сигнала (kill аналогично)

top / htop - диспетчер задач процессов в реал тайме

lsof - вывод списка процессов

free - вывод доступных ресурсов тачки

uptime - время работы тачки

screen - управление сессиями



Приоритетность процессов начинается от самого высокого (-20), до самого низкого (+19). Nice и Renice соответственно. Посмотреть можно в столбце NI командой ps -alx. Для кастомизации вывода:



ps -eo [поля]

ps -eo user, pid, pcpu, nice, comm



Также:

[команда] [аргумент] & (перевод в fg)

ps -eo user, pid, pcpu, nice, comm | grep sleep



Для определения приоритетности:

nice [команда] [аргумент] & (по дефолту 10)

nice -n 19 [команда] [аргумент] &



Изменение приоритетности для уже существующего процесса:

renice [уровень] -p [id процесса]



Для изменения приоритетности процессов у пользователя:

renice [уровень] -u [пользователь]



Для большинства команда нужны права root