Многопроцессорные операционные системы, такие как Linux и BSD использовать несколько методов для максимального использования ЦП. Процесс — это просто выполняемая программа. Поскольку одновременно может быть запущено несколько процессов Linux, управление процессами в Linux чрезвычайно важно.
Пользователи часто сталкиваются с такими проблемами, как ограничение ресурсов ЦП при запуске слишком большого количества программ. Подобные ситуации возникают, когда ЦП не справляется с растущим числом процессов. Хотя это не зависит полностью от мощности вашего процессора, работа с зависшими или зомби-процессами может быть довольно неприятной. Чтобы помочь вам уменьшить такие случаи, мы в общих чертах описываем некоторые стандартные способы уничтожения этих процессов.
Освойте управление неотвечающими процессами в Linux
Вы узнаете несколько способов завершить процесс Linux, который вообще не отвечает. Если вы работаете в Windows, возможно, вы знакомы с Ctrl + Alt + Delete . Точно так же пользователи Mac имеют
Как завершить зависшую программу, процесс в Linux Ubuntu.
Command + Option + Escape метод уничтожения замороженных процессов. Linux гораздо более универсален, чем его аналоги, и предлагает более одного метода для борьбы с мертвыми / не отвечающими процессами.
Различные методы уничтожения мертвого процесса Linux
В основном мы выделим два метода уничтожения зомби-процессов. Мы будем использовать терминал Linux по первому способу. Для этого нам сначала нужно определить идентификатор процесса. После успешного получения мы можем использовать этот PID, чтобы убить программу, отправив определенные сигналы этому PID.
Вы также узнаете, как выполнять такие задания уничтожения Linux из графического пользовательского интерфейса или окно X . Мы собираемся использовать «Системный монитор» приложение, доступное для этого в Ubuntu. Хотя это приложение GNOME, аналогичные инструменты доступны для других Среда рабочего стола Linux .
Завершить неотвечающий процесс из командной строки
Есть несколько инструментов для завершения неотвечающего или зависшего процесса из командной строки, в том числе убийство, pkill, и убить всех. Эти команды работают, посылая определенные сигналы этим неотвечающим процессам. Вам понадобится идентификатор процесса или PID информацию, чтобы вы могли послать им требуемый завершающий сигнал.
PID или идентификатор процесса — это уникальный номер, который идентифицирует процесс. Они создаются ядром Linux во время выполнения, и планировщик процессов контролирует их активность ЦП. Итак, всякий раз, когда вы вызываете приложение, ядро сначала порождает необходимые процессы и присваивает им эти уникальные значения PID. С процессом может быть связано несколько PID. Более того, у каждого процесса есть единственный родительский процесс с уникальным PPID (Parent Process ID).
Итак, если вам удастся узнать этот PPID, вы сможете отправить сигнал об уничтожении с помощью программ, предназначенных для этой цели. Ниже вы узнаете, как проверить запущенные процессы в Linux и определить их PPID с помощью терминала.
Как убить процесс в линукс
Узнайте информацию о PPID
Вы можете узнать PPID процесса с помощью нескольких команд управления процессами в Linux, таких как пидоф, pstree, и pgrep. Давайте рассмотрим их один за другим и посмотрим, как получить PID процесса Linux.
Метод 1. Использование команды ps
Команда ps в Linux отображает все запущенные процессы вместе с другой связанной с процессами информацией, такой как PID в терминале. Мы можем использовать эту команду, чтобы вывести список всех процессов, а затем отфильтровать конкретный процесс, используя Команды grep в Linux . Он должен показать нам интересующую нас информацию об идентификаторе процесса.
$ нано> / dev / null нано»
Сначала мы запустили текстовый редактор Linux в фоновом режиме. Затем мы использовали команду ps вместе с командой grep, чтобы узнать PPID этого редактора. Вывод может содержать несколько идентификаторов процессов, но нас интересует только первый, поскольку это наш PPID.
Мы также можем использовать команда Linux awk чтобы узнать эту информацию, как показано ниже.
$ ps aux | awk ‘/ nano / ‘
Эта команда более гибкая, поскольку она подавляет всю не относящуюся к делу информацию. Он будет отображать только ту информацию PPID, которую мы ищем.
Метод 2: использование команды pstree
Команда pstree предоставляет нам древовидное представление всех запущенных процессов. Он обеспечивает графическое представление списка задач Linux из окна терминала. Вы можете просмотреть PPID, а также всю информацию PID процесса, используя эту команду. Ознакомьтесь с приведенными ниже примерами, чтобы узнать, как использовать pstree для поиска PPID определенного процесса.
$ нано> / dev / null / dev / null / dev / null / dev / null / dev / null [электронная почта защищена]» do pid = $ (pgrep $ pro | head -1) echo $ pid comm = «kill -9 $ pid» eval $ comm. сделано
Теперь сохраните этот файл и добавьте разрешение на выполнение, выполнив следующую команду.
$ chmod + x proc-killer.sh
Теперь вы можете передать этому сценарию имя процессов, которые вы хотите завершить.
$ ./proc-killer.sh nano gedit vlc
Просто замените аргументы именами не отвечающих процессов Linux в вашей системе.
Завершить неотвечающий процесс из графического интерфейса пользователя
Вы также можете завершить неотвечающий процесс из графического пользовательского интерфейса или X-окна. В следующем разделе мы обсудим два метода для этого.
Метод 1: Использование приложения xkill
Современные дистрибутивы Linux используют графическое окно X для предоставления пользователям элегантного графического интерфейса. Существует простой инструмент под названием xkill, который позволяет пользователям закрывать неотвечающее окно графического интерфейса пользователя. Это возможно, поскольку в Linux окно заголовка приложения отделено от самого приложения.
Просто перейдите в эмулятор терминала Linux и введите xkill. Он превратит ваш курсор мыши в кнопку X, которую можно использовать для закрытия любого окна графического интерфейса.
$ xkill
Теперь все, что вам нужно сделать, это просто щелкнуть панель окна не отвечающего приложения, и оно будет отключено и немедленно исчезнет.
Метод 2: использование приложения системного монитора в Ubuntu
Наиболее основные дистрибутивы Linux поставляются с какими-то инструментами мониторинга графического интерфейса, которые позволяют пользователям графически завершить зависший процесс Linux. Например, приложение System Monitor в Ubuntu позволит нам интуитивно завершить процесс, не отвечающий на запросы. Вы можете просто выбрать мертвый процесс из списка процессов и убить его, щелкнув процесс правой кнопкой мыши и выбрав опцию уничтожения.
Есть еще много альтернатив этому приложению, и мы уверены, что вы легко найдете одну для своего дистрибутива или среды рабочего стола.
Конечные мысли
Поскольку управление процессами в Linux очень универсально, пользователи часто разочаровываются, имея дело с неотвечающими процессами. Вот почему наши редакторы обрисовали в общих чертах все возможные способы завершения мертвого процесса Linux в этом руководстве. Прочитав это, вы сможете убить любые неотвечающие процессы либо из командной строки, либо из графического интерфейса.
Вы также можете использовать любую из наших однострочных команд, чтобы справиться с такими неприятностями в кратчайшие сроки. Более того, вы даже можете убить более одного процесса, используя наш простой сценарий оболочки. Надеюсь, вы получили необходимую информацию из нашего руководства.
Источник: ciksiti.com
Убиваем процессы в Linux
Рассказываем, как завершить работу одного или нескольких процессов в разных дистрибутивах Linux.
- Сигналы завершения процессов в Linux
- Как завершить процесс в Linux
- С помощью команды kill
- С помощью команды pkill
- С помощью команды killall
Сигналы завершения процессов в Linux
В Linux управление процессами осуществляется с помощью специальных сигналов. Каждый сигнал задает определенный набор параметров и моделей поведения для ядра и запущенных программ. Например, завершить выполнение определенных задач, удалить все временные файлы или закончить обрабатывать полученные данные. Системе Linux и запущенным процессам эти сигналы хорошо знакомы, и они умеют на них правильно реагировать. Поэтому они работают по всей системе без ограничений.
Эти сигналы обычно посылает сама система, но это может делать и администратор компьютера. Правда, перед этим ему стоит ознакомиться с тем, к каким последствиям может привести халатное отношение к командам завершения процессов.
- SIGINT — это относительно щадящий сигнал завершения работы. Его можно послать, одновременно нажав клавиши Ctrl + C. Этот сигнал разрешает процессу завершить выполнение своей работы, удалить после себя весь мусор и спокойно уйти на покой.
- SIGQUIT — этот сигнал также пытается убить процесс, предлагая ему закончить свою работу, но процесс может проигнорировать этот запрос и тут же закрыться. При этом SIGQUIT формирует некий слепой (дамп памяти) программы для восстановления данных при повторном запуске. Чтобы его послать, нужно одновременно нажать клавиши Ctrl + /.
- SIGHUP — этот сигнал отправляется автоматически, когда теряется интернет-соединение между управляющим компьютером и сервером.
- SIGTERM — сигнал, убивающий процесс, который обрабатывается программой.
- SIGKILL — убивает процесс, игнорируя зависимости, которые остаются активными.
Как завершить процесс в Linux
Как я уже рассказывал раньше, процесс можно убить, используя определенные сочетания клавиш в терминале.
Допустим, находясь в терминале, вы запустили собственный node.js сервер и хотите прекратить его работу (или же начали загрузку какого-то пакета). Эти задачи можно прервать, нажав одну из двух комбинаций клавиш:
- Ctrl + C — чтобы отправить сигнал SIGINT и завершить процесс в щадящем режиме.
- Ctrl + / — чтобы дать процессу возможность игнорировать завершение сторонних задач.
С помощью команды kill
Если нужно передать сигнал завершения процесса какой-то программе, которая работает в фоновом режиме, можно воспользоваться командной kill.
У этой команды следующая структура: сначала отправляется сама команда kill, затем указывается тип сигнала (например -TERM), а следом номер процесса, так называемый process ID.
$ kill -TERM 10528
С первыми двумя составляющими команды все понятно. kill никогда не меняется, вместо -TERM можно вписать другой сигнал, а вот PID сначала нужно отыскать.
Для этого используется команда ps aux | grep название программы.
Вот несколько примеров:
- Открываем терминал.
- Вводим туда команду ps aux | grep ping.
- Находим процесс с нужным номером.
- Убиваем его командой kill — TERM.
Вот та же самая процедура, но более наглядно. В одном окне терминала запущена программа ping, и в реальном времени она посылает сигналы на сайт. Во втором окне я прописал команду ps aux | grep ping. Терминал выдал мне список процессов с таким названием. Я нашел среди них свой, он запущен под Process ID 8823.
Это наше пространство для проведения эксперимента
Теперь я могу закрыть этот процесс, введя команду kill -TERM 8823.
Номер PID указан в самом начале каждой строки
И мне даже не нужно проверять, действительно он завершился или нет. В оболочке Gnome 3 в центре уведомлений тут же появилось соответствующее сообщение.
Команда ping youtube.com завершила свою работу. Все произошло так, как нам было нужно
С помощью команды pkill
pkill — это не отдельная программа, а надстройка над kill. Разница между ними заключается в том, что для запуска первой не требуется сначала выяснять PID. Программа pkill анализирует содержимое директории proc, сравнивает введенное название программы с PID, который указан там, и затем посылает сигнал завершения работы по указанному адресу.
По описанию процесс кажется замысловатым, но по факту для конечного пользователя все выглядит просто.
- Открываем терминал.
- Вводим команду pkill, а следом за ней название процесса, который нужно убить.
- Для примера введем команду pkill ping.
В нашем примере опять будем убивать ping, только теперь без PID. Нам не пришлось искать никакие номера и анализировать их
По уведомлению видно, что команда pkill сработала
С помощью команды killall
Описанные выше методы хорошо работают, если нужно завершить один процесс. А когда перед нами условный Google Chrome, создавший по процессу на каждую вкладку, то приходится туго. Закрывать все вручную сложновато. Для этого и нужна команда killall.
У нее такой же синтаксис, как у pkill. Просто вводите команду, а следом за ней название программы, которую нужно убить.
Вот так, к примеру, можно полностью вывести из строя браузер Firefox. Он даже не успеет никаких вопрос задать
Источник: tehnichka.pro
Как найти и завершить процесс с помощью терминала Linux
Каждая программа, запущенная на сервере, способна создавать один или несколько процессов. На одном сервере может быть несколько пользователей, которые выполняют множество команд, создающих процессы. Эти процессы могут работать как на переднем плане, так и в фоновом режиме. Если программа запущена на переднем плане, она может занять терминал, где программа была первоначально запущена, и другие приложения не могут быть запущены, пока другие процессы не запущены на переднем плане.
В то время как другие процессы могут работать и в фоновом режиме, в этом случае терминал, в котором мы начали запускать нашу программу, может добавлять новые команды, пока программа все еще запущена. Демоны также являются одним из типов процессов, которые выполняются непрерывно. Они прослушивают запросы на определенных портах. Обычно они инициализируются при запуске системы и просто ждут в фоновом режиме, пока их услуги не понадобятся.
Иногда во время работы наша система становится невосприимчивой, процесс может занимать много системного пространства и даже остановиться. Поэтому нам нужно найти и завершить такой процесс в Linux, чтобы продолжить работу. Существует много способов завершить (убить) процесс в Linux, которые будут рассмотрены в этом руководстве. Процесс может быть убит принудительно с помощью этих команд.
При написании этой статьи я использовал Ubuntu. Однако команды могут работать в любом дистрибутиве Linux.
Определение местоположения процесса Linux
Шаг 1: Прежде всего, откройте Terminal, нажав на пусковую установку Ubuntu и выполнив поиск Terminal.
Шаг 2: Теперь нажмите на Терминал и подождите, пока он откроется.
Шаг 3: Как только терминал откроется, у вас появится вот такой экран:
В последующих шагах важны следующие два ключа:
PID — это идентификатор процесса. Каждый процесс имеет определенный 5-значный номер, присвоенный самому процессу. Эти номера могут повторяться, когда они достигают максимального предела, но они всегда уникальны для процесса в системе.
Шаг 4: команда top- используется в качестве основной команды для просмотра всех запущенных процессов, использующих ресурсы компьютерного устройства. Итак, мы выполняем команду top- в терминале и получаем следующие результаты
Команда top сама по себе является приложением. Оно может использоваться для отображения списка всех процессов и имеет новое оформление при выполнении. Вот пример,
- h — используется для отображения окна справки. В окне справки есть все команды, они предоставляют информацию, которая весьма полезна.
- пробел — При нажатии пробела мы получим немедленное обновление таблицы процессов. Нам не придется ждать никакого временного интервала.
- f — добавление файлов для отображения в макете или удаление для удаления определенных полей, чтобы они не отображались.
- q — используется для выхода из верхнего приложения, а также для дополнительно открытого окна.
- l — используется для переключения отображения информации о средней нагрузке и времени работы.
- m — служит для переключения отображения информации о памяти.
- P (Shift + p) — используется для сортировки процессов по использованию процессора.s — используется для изменения задержки между обновлениями.
Шаг 5: Для просмотра списка всех запущенных процессов есть еще одна команда
ps -A | less
Появится список всех запущенных в данный момент процессов. Этот процесс показывает все запущенные процессы, которые имеют свои PID «идентификаторы процессов». Вы можете просмотреть этот список, чтобы найти имя процесса, которое также соответствует программе, которую вы хотите убить. В конце списка отображаются программы, запущенные в последнее время, которые вы хотите завершить из списка.
Когда вы закончите, нажмите «q», чтобы выйти из этого окна.
Завершение процесса по идентификатору
Получив PID, мы можем использовать команду kill, чтобы завершить процесс на основе информации, полученной от команды ps -A.
Шаг 1: Для этого мы используем команду «sudo kill PID». Где PID — это идентификатор процесса, который мы хотим завершить.
sudo kill 9999
Если мы хотим завершить определенный процесс, мы видим его соответствующий PID, а затем используем его, чтобы завершить запущенный процесс. Например, мы хотим завершить процесс «firefox», поэтому сначала находим его PID.
Итак, здесь PID firefox равен 16562. Мы используем команду «sudo kill PID», чтобы завершить процесс Firefox.
sudo kill 16562
Как проверить, был ли процесс завершен или нет?
Затем мы проверяем все запущенные процессы после того, как убьем интересующий нас процесс, используя команду «ps -A | less». Результат показывает, что в списке нет процесса firefox (PID: 16562).
Завершение процесса по имени
Убийство программы по имени ее процесса работает только для всех исполняемых файлов (т.е. всех запускаемых программ), которые должны быть открыты на момент выполнения. Все те программы, которые выполняются в фоновом режиме, не могут быть убиты по имени процесса.
Сейчас мы убьем интересующий нас процесс, используя его имя. Если мы хотим завершить конкретный процесс, мы видим его соответствующий PID и затем используем его для убийства запущенного процесса. Например, мы хотим завершить процесс «firefox», поэтому сначала находим его PID. Завершить процесс Linux по имени
Итак, здесь имя процесса — firefox, и мы используем команду «pkill firefox» для завершения этого процесса.
sudo pkill firefox
Затем мы проверим все запущенные процессы после того, как убьем интересующий нас процесс, используя команду «ps -A | less». Результат показывает, что в списке нет процесса firefox.
Заключение
Спасибо, что прочитали эту статью. Мы рассмотрели, как можно найти и затем завершить процесс, используя его ID или имя.
Похожие записи:
- Проверить версию Linux
- Как установить и настроить VNC-сервер в Ubuntu
- Как использовать apt для установки программ из командной строки в Debian
- Как создать фиктивный зомби-процесс в Ubuntu
- Управление файлами в Linux с помощью терминала
- Как сгенерировать запрос на подписание сертификата SSL/TLS (CSR) в Debian
- Команды для проверки плохих секторов на жестком диске в Linux
Источник: g-soft.info