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