В многопроцессорных операционных системах наподобие BSD и Linux существует более одного способа достичь максимального пика загрузки центрального процессора (ЦП). И новичкам для начала следует усвоить, что под термином “процесс” подразумевается просто какая-то исполняемая программа. И в связи с тем, что в Linux в каждый момент времени исполняется множество различных процессов, то крайне важно уметь ими управлять. Если пустить дело на самотек, то работа с системой будет преподносить неприятные сюрпризы.
Можно провести аналогию между процессами и вредителями в обычной жизни. Мы ведь оберегаем свои жилища от проникновения грызунов. А если они вдруг появились, то мы знаем, что нужно звонить в специальную службу, которая проводит профессиональное уничтожение мышей. То же самое и в Linux. Тут есть процессы, которые должны работать, не вторгаясь в нормальное функционирование системы. Но если это произошло, то нужно взять «мышь» и убить зависший процесс, который парализовал Linux.
Использование мастера управления зависшими процессами
В Linux существуют разные способы завершения процессов. Пользователи Windows наверняка знакомы с сочетанием клавиш «Ctrl-Alt-Delete». Их нажатие позволяет вызвать диспетчер задач, который покажет процессы системы. В MacOS для тех же целей существует комбинация «Command-Option-Escape». Но Linux намного более универсальная операционная система по сравнению с перечисленными аналогами. И она предлагает несколько вариантов по закрытию так называемых зомби-процессов.
Какими путями снимают мертвые процессы в Linux
Хотя способов убить зависший процесс много, но обычно используют один из двух. Первый предполагает использование терминала Linux. Но сперва нужно получить идентификатор (ID) того процесса, который завис. В Linux такие идентификаторы имеют общее название PID от «process identifier». Получив его, можно отправить в операционную систему сигнал, уничтожающий нужный процесс.
Плюс можно воспользоваться графическим интерфейсом, что будет более удобным для большинства пользователей. Речь о «Системном мониторе», который доступен в Linux, начиная с Ubuntu. Хотя в других версиях операционной системы можно встретить удачные аналоги.
![](https://lumail.org/wp-content/uploads/2022/06/linuxbash.jpg)
Завершение неотвечающего процесса через командную строку
Для закрытия процесса, который завис или перестал отвечать, можно использовать один из нескольких инструментов. Среди них killall/pkill/kill. Каждая из команд работает, отправляя определенный сигнал к зависшему процессу. Но для того, чтобы воспользоваться перечисленными инструментами, нужно узнать PID.
Под PID, как уже говорилось, подразумевают уникальный идентификатор процесса. Его формирует и фиксирует ядро Linux при выполнении задачи. И диспетчером операционной системы происходит управление процессорной активностью для каждого такого процесса той или иной программы, службы и т. п.
То есть, когда пользователь открывает приложение, ядро операционной системы сперва осуществляет запуск необходимых процессов, каждому из которых оно присвоит персональное обозначение PID. Причем следует учитывать, что с одним процессом могут связать сразу несколько идентификаторов. Даже больше того – каждая задача имеет один самый главный процесс, называемый родительским. И у него есть свой уникальный идентификатор, обозначаемый как PPID. И если убить процесс с этим идентификатором, то закроются и все смежные задачи. Ну а то, как узнать идентификатор, используя специальные запросы для ввода в командную строку, мы рассмотрим в одной из следующих статей.