Как удалить из памяти процессы, потерпевшие сбой
Происходит это не так часто, но любые сбои раздражают. Допустим, у нас запущен браузер и в какой-то момент времени он зависает. Вы пытаетесь его закрыть, но он не отвечает.
Это не страшно: процесс условного Firefox можно завершить и запустить браузер снова. Но сначала нам нужно узнать ID процесса браузера — PID (proccess ID, идентификатор процесса). Вот, как это будет выглядеть:
aux в команде ps:
• a - указывает ps вывести на дисплей процессы всех пользователей, за исключением тех процессов, которые не связаны с терминалом и процессами группы лидеров.
• u - подставки для ориентированных на пользователя формате, который обеспечивает подробную информацию о процессах.
• x - перечисляет процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме.
Рядом с пользователем edgesection находится число — это и есть PID. Его мы будем использовать для обозначения процесса, который мы хотим закрыть. Для завершения процесса существует специальная команда —
Обычно простой запуск
Однако это не всегда работает. В примере выше мы запускали ps, но процесс все еще работал. Ничего страшного, значит, мы просто подадим параметр -9 — это сигнал для принудительного завершения процесса.
Примечание. Пользователь без root-прав может завершать лишь те процессы, которые он запустил. Root-пользователь может завершить любой.
Это не страшно: процесс условного Firefox можно завершить и запустить браузер снова. Но сначала нам нужно узнать ID процесса браузера — PID (proccess ID, идентификатор процесса). Вот, как это будет выглядеть:
1. user@bash: ps aux | grep 'firefox'
2. edgesection 6978 8.8 23.5 2344096 945452 ? Sl 08:03 49:53 /usr/lib64/firefox/firefox
3. user@bash:
aux в команде ps:
• a - указывает ps вывести на дисплей процессы всех пользователей, за исключением тех процессов, которые не связаны с терминалом и процессами группы лидеров.
• u - подставки для ориентированных на пользователя формате, который обеспечивает подробную информацию о процессах.
• x - перечисляет процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме.
Рядом с пользователем edgesection находится число — это и есть PID. Его мы будем использовать для обозначения процесса, который мы хотим закрыть. Для завершения процесса существует специальная команда —
kill
. kill [signal] <PID>
1. user@bash: kill 6978
2. user@bash: ps aux | grep 'firefox'
3. edgesection 6978 8.8 23.5 2344096 945452 ? Sl 08:03 49:53 /usr/lib64/firefox/firefox
4. user@bash:
Обычно простой запуск
kill
завершает зависший процесс. В этом случае команда отправляет параметр по умолчанию — -1. Этот сигнал указывает процессу, ему надо закрыться. Сначала всегда нужно попытаться воспользоваться этим вариантом: он короче.Однако это не всегда работает. В примере выше мы запускали ps, но процесс все еще работал. Ничего страшного, значит, мы просто подадим параметр -9 — это сигнал для принудительного завершения процесса.
1. user@bash: kill -9 6978
2. user@bash: ps aux | grep 'firefox'
3. user@bash:
Примечание. Пользователь без root-прав может завершать лишь те процессы, которые он запустил. Root-пользователь может завершить любой.
Алексей Иванов
Опубликовано 17-08-2023
123