Несмотря на то что Linux стабильнее чем Windows, в плане работы программ и различных сервисов, случается всякое и иногда возникает необходимость завершить процесс Linux. Это может понадобиться, если программа завила, когда вы запустили системный сервис в фоне через терминал, а не систему инициализации, а также во многих других случаях, когда убить процесс Linux проще, перезагружать всю систему.
В этой статье мы рассмотрим несколько самых распространенных способов завершить процесс Linux. Опишем подробно как происходит остановка процесса и как все сделать правильно.
Как происходит завершение процесса?
- SIGINT — самый безобидный сигнал завершения, означает Interrupt. Он отправляется процессу, запущенному из терминала с помощью сочетания клавиш Ctrl+C. Процесс правильно завершает все свои действия и возвращает управление;
- SIGQUIT — это еще один сигнал, который отправляется с помощью сочетания клавиш, программе, запущенной в терминале. Он сообщает ей что нужно завершиться и программа может выполнить корректное завершение или проигнорировать сигнал. В отличие от предыдущего, она генерирует дамп памяти. Сочетание клавиш Ctrl+/;
- SIGHUP — сообщает процессу, что соединение с управляющим терминалом разорвано, отправляется, в основном, системой при разрыве соединения с интернетом;
- SIGTERM — немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы;
- SIGKILL — тоже немедленно завершает процесс, но, в отличие от предыдущего варианта, он не передается самому процессу, а обрабатывается ядром. Поэтому ресурсы и дочерние процессы остаются запущенными.
Важно понимать, что нужно дать процессу возможность завершиться корректно. Желательно, чтобы порты и сокеты были освобождены, закрыты и удаленны временные файлы. Поэтому никогда не передавайте сразу SIGKILL. Передавайте сигналы завершения в последовательности, как они перечислены выше.
Как завершить зависшую программу, процесс в Linux Ubuntu.
Сначала Ctrl+C, если это возможно, затем SIGTERM — он хоть и завершает процесс, но делает эту культурно, и только в крайнем случае SIGKILL. А теперь рассмотрим как убить процесс по pid Linux на практике. Если вы всегда используете SIGKILL, тогда на ум приходит такая картинка:
Как убить процесс Linux?
Для передачи сигналов процессам в Linux используется утилита kill. Ее синтаксис очень прост:
$ kill -сигнал pid_процесса
Сигнал представляет собой один из выше перечисленных сигналов для завершения процесса. По умолчанию, если этот параметр не указан, используется сигнал SIGTERM, что является очень правильно. Также нам нужно указать какой процесс нужно завершить. Для этого используется уникальный идентификатор процесса — PID.
Допустим, у нас выполняется утилита ping. Мы хотим ее завершить с помощью kill. Тогда, сначала мы узнаем ее идентификатор с помощью команды ps:
Как закрыть игру если завис компьютер и диспетчер задач не помогает?? Способ найден!
В первой строчке отобразится сама утилита ping, а во второй сама программа ps. Берем нужный PID и завершаем процесс с помощью SIGTERM:
И только если после этой команды процесс продолжил висеть, а это вы можете проверить, выполнив ps. Только теперь можно выполнить SIGKILL:
Теперь снова проверяем:
Если процесс запущен от суперпользователя, то, естественно, вам нужно использовать sudo. Не всегда удобно уничтожать процесс по его PID, как минимум, потому, что вам этот PID нужно еще узнать. Мы могли бы нагородить сложных конструкций с использованием xargs, чтобы вычислять автоматически pid по имени процесса и сразу же его завершать, но в этом нет необходимости. Уже существуют специальные утилиты.
Как завершить процесс с помощью pkill
Утилита pkill — это оболочка для kill, она ведет себя точно так же, и имеет тот же синтаксис, только в качестве идентификатора процесса ей нужно передать его имя. Утилита сканирует директорию proc и находит PID первого процесса с таким именем, затем отправляет ему SIGTERM. Таким образом, вы можете убить процесс по имени Linux. Например, если мы хотим завершить тот же ping:
Также можно вручную задать тип сигнала:
Вместо ps, вы можете использовать утилиту pgrep для поиска pid процесса, убедимся что наша программа завершена:
Но если вам программа создала несколько процессов, например, браузер chromium или firefox создают отдельный процесс для каждой из вкладок, то эта утилита мало чем поможет. Тут нужен следующий вариант.
Как остановить процесс с помощью killall
killall работает аналогично двум предыдущим утилитам. Она тоже приминает имя процесса в качестве параметра и ищет его PID в директории /proc. Но эта утилита обнаружит все процессы, с таким именем и завершит их. Например:
Как видите, запущено несколько процессов, осталось остановить процесс Linux с помощью killall:
Команда завершит все запущенные утилиты ping, вы можете убедиться в этом еще раз выполнив pgrep:
Выводы
В этой статье мы рассмотрели как убить процесс Linux. Иногда эта задача может быть очень полезной, но важно понимать, что ее нужно выполнять правильно. Нельзя сказать, что передача SIGKILL вместо SIGTERM очень опасна, но так делать не стоит. Надеюсь, эта информация была полезна для вас.
7 способов «убить» зависшее приложение в Linux
Программное обеспечение Linux достаточно надежно, но бывает, что даже самые лучшие приложения могут зависнуть. Вместо того, чтобы ждать сообщения о сбое в работе приложений, вы можете «убить» их, принудительно завершив.
Andrew E.
Read more posts by this author.
Andrew E.
Программное обеспечение Linux достаточно надежно, но бывает, что даже самые лучшие приложения могут зависнуть. Вместо того, чтобы ждать сообщения о сбое в работе приложений, вы можете «убить» их, принудительно завершив. На самом деле способов это сделать существует настолько много, что глаза разбегаются!
Если у вас возникают такие проблемы, вот несколько способов, как принудительно завершить программу в Linux.
1. Завершить программу в Linux, просто нажав на «X»
Вы, наверное, уже пытались уйти и сделать себе чашечку кофе, но когда вернулись, обнаружили, что ваша программа зависла, вероятно, у него было достаточно времени, чтобы «отвиснуть», но этого не произошло. Зависшее приложение обычно имеет серые неактивные кнопки управления и у него пропадает возможность перемещения.
Итак, как эту проблему решить? Нажмите на «крестик» в верхнем углу (слева или справа, в зависимости от версии системы Linux). Это должно помочь. Возможно, появится окно с просьбой подождать или принудительно завершить процесс, а также отправить отчет об ошибке.
2. Воспользуйтесь системным монитором, чтобы «убить» процесс Linux
Следующий вариант — открыть утилиту System Monitor вашей операционной системы Linux. Обычно она находится в меню «Системные инструменты» и отображает список запущенных процессов на вкладке «Процессы«.
Чтобы закрыть не отвечающее приложение, просто выберите его и щелкните правой кнопкой мыши. Затем у вас появится три варианта:
- Остановить: приостанавливает процесс, позволяя продолжить его позже. Не будет работать в большинстве случаев.
- Завершить: правильный способ закрыть процесс, он безопасно завершит работу приложения, вместе с ним удаляя временные файлы.
- Убить: вариант на крайний случай и его рекомендуется применять только в случае сбоя.
Лучше всего использовать их по порядку. Однако, если приложение регулярно зависает, можно использовать вариант, в котором вы точно уверены.
3. Принудительное уничтожение процесса Linux с помощью xkill
Другой вариант — использование команды xkill в терминале. Это инструмент принудительного уничтожения процесса, который предустановлен в Ubuntu, но его можно также установить через терминал в других дистрибутивах, если необходимо. xkill позволит закрыть любой процесс. Установить его можно с помощью следующей команды:
Как только установите, наберите:
Вместо указателя мыши появится крест (или череп). Далее необходимо щелкнуть левой кнопкой мыши на зависшем приложении, чтобы закрыть его.
Если невозможно закрыть зависшее приложение одним из этих методов, то решение может быть в терминале Linux.
4. Используйте команду «kill»
Если ни один из вышеперечисленных методов не помог и приложение до сих пор не отвечает, нажмите Ctrl + Alt + T, чтобы открыть терминал.
Есть несколько команд, которые должны помочь закрыть ваше приложение. Более того, их можно использовать как на вашем компьютере, так и подключившись удаленно через SSH.
Команда kill может быть использована только с указанием идентификатора процесса. Сначала выясним его:
В результате вы увидите ID нужного процесса. Далее используем команду:
Возможно, вам понадобятся системные права для использования программы, тогда используйте sudo.
5. Используйте команды «pgrep» и «pkill»
Что, если вы не смогли найти идентификатор процесса. Здесь вам поможет команда pkill.
Кроме того, можно использовать команду pgrep, чтобы найти идентификатор процесса:
После этого используйте команду pkill с ID процесса.
Как и в случае команды kill, процесс должен завершиться в течение 5 секунд.
6. Уничтожить все экземпляры процесса с помощью «killall»
Не повезло с kill или pkill? Пришло время использовать ядерную опцию: killall.
К счастью, она не так разрушительна, какой могла бы быть. Команда killall завершит все экземпляры указанной программы. Таким образом, вместо того, чтобы убивать одно окно Firefox, данная команда завершит их все:
Все, что вам нужно, это имя процесса и команда killall (возможно, с sudo, если этого требует ваша система).
Естественно, вы должны использовать эту команду только при необходимости. Она не подходит для большинства ситуаций.
7. Создайте комбинацию клавиш
Хотите сэкономить время на закрытие не отвечающего программного обеспечения? Наилучшим вариантом является создание сочетания клавиш. Это даст вам возможность немедленно закрыть приложение, но для этого потребуется xkill.
В Ubuntu откройте «Настройки«>«Клавиатура» и нажмите «Комбинации клавиш«. Выберите Дополнительные комбинации, затем +, чтобы создать новую. Введите «xkill» для названия, затем нажмите «Применить«. Это вернет вас к списку комбинаций — выберите нужную, затем нажмите необходимую комбинацию клавиш, которую вы будете использовать для ее вызова.
В следующий раз, когда вам нужно закрыть приложение, просто используйте сочетание клавиш. Указатель мыши станет «X», и вы можете щелкнуть в любом месте приложения, которое хотите закрыть.
Избегайте зависаний программ: обновите свое оборудование
Зависающие программы постоянно вызывают проблемы? Возможно, пора немного обновить ваш компьютер.
Установка дополнительной оперативной памяти — это лучший способ повысить производительность вашего компьютера, и, возможно, именно это вам и нужно.
Итак, в следующий раз, когда приложение или утилита Linux зависнет и перестанет отвечать на запросы, все, что вам нужно сделать, это применить одно из следующих решений:
- Завершить программу в Linux, просто нажав на «X».
- Воспользуйтесь системным монитором, чтобы «убить» процесс Linux.
- Принудительное уничтожение процесса Linux с помощью xkill.
- Используйте команду «kill».
- Используйте команды «pgrep» и «pkill».
- Уничтожить все экземпляры процесса с помощью «killall».
- Создайте сочетание клавиш.
Если ни одно из этих решений не работает и вы регулярно испытываете не отвечающие приложения Linux, рассмотрите возможность перехода на облегченную операционную систему Linux.
Источник: onecomp.ru
Как принудительно закрыть программу в Linux Mint?
Сначала откройте меню GNOME и выберите «Система»> «Настройки»> «Сочетания клавиш». Во-вторых, нажмите «Добавить», и в окне должно появиться 2 текстовых поля, помеченных «Имя» и «Команда». В поле «Имя» введите «Принудительный выход», а в поле «Команда» введите «xkill» и нажмите «Применить».
Как принудительно закрыть приложение в Linux Mint?
Нажмите Alt + F2 и введите gnome-terminal , чтобы открыть сеанс терминала. Внутри терминального типа в sudo xkill; затем щелкните любое окно, чтобы убить его.
Как убить программу в Linux Mint?
Нажмите Alt + F2 и введите gnome-terminal, чтобы открыть сеанс терминала. 2. Внутри терминала введите sudo xkill; затем щелкните любое окно, чтобы убить его. Эта команда заставляет ваш курсор действовать как терминатор, смертельно опасный.
Как принудительно закрыть программу в Linux?
В зависимости от среды рабочего стола и ее конфигурации вы можете активировать этот ярлык, нажав Ctrl + Alt + Esc. Вы также можете просто запустить команду xkill — вы можете открыть окно терминала, ввести xkill без кавычек и нажать Enter.
Как исправить зависший Linux Mint?
Удерживая Alt и SysRq (что является клавишей Print Screen) при медленном вводе REISUB, вы безопасно перезагрузитесь.
Есть ли в Linux Mint диспетчер задач?
В Ubuntu он находится в разделе «Система» -> «Настройки» -> «Сочетания клавиш», а в Linux Mint откройте меню mintMenu -> «Центр управления» -> «Сочетания клавиш». … Для Ctrl + Alt + Del замена мы назовем новый ярлык «Диспетчер задач», а команда для запуска — gnome-system-monitor.
Как работает xkill?
xkill — самый простой способ убить неисправную программу. Если вы хотите убить процесс, запустите xkill, который предложит курсор в виде перекрестия. Щелкните по окну с левым курсором, который убьет этот процесс. Примечание. На самом деле xkill указывает XServer завершить работу клиента.
Как принудительно выйти из Libreoffice?
Чтобы остановить процесс, введите kill x, где x — PID процесса. Вы должны получить сообщение вроде убитого 1 процесса. Если процесс все еще запущен, попробуйте убить -УБИТЬ х чтобы заставить программу выйти.
Как убить задачу в Linux?
Для уничтожения процесса используются две команды: kill — убить процесс. по ID. убить всех — Убить процесс по имени.
.
Убивающий процесс.
ПОДПИСАТЬСЯ | 1 | Вешать трубку |
SIGINT | 2 | Прерывание с клавиатуры |
СИГКИЛЛ | 9 | Убить сигнал |
СИГТЕРМ | 15 | Сигнал завершения |
Как изменить разрешения в Linux?
Чтобы изменить права доступа к каталогу в Linux, используйте следующее:
- chmod + rwx filename для добавления разрешений.
- chmod -rwx имя_директора для удаления разрешений.
- chmod + x filename, чтобы разрешить исполняемые файлы.
- chmod -wx filename, чтобы получить права на запись и исполняемые файлы.
Источник: frameboxxindore.com
Что делать, если зависло приложение в Ubuntu?
Ошибка в тексте? Выделите ее мышкой! И нажмите: CTRL+Enter, сообщите об этом, автор постарается в краткие сроки обновить / исправить материал.
У всех нас при работе с любой системой хоть это линукс либо Windows иногда случаются проблемы в виде зависания приложения, которое нельзя никак закрыть, кроме как открыть диспетчер задач и завершить процесс.
Как завершить либо убить процесс в дистрибутиве Ubuntu либо Kubuntu и других его сородичах спросите вы? Делается это очень просто, в Ubuntu есть подобия диспетчера задач под именем — Системный монитор(System Monitor) который обладает всем необходимы функционалом для управления процессами.
Для запуска Системного монитора, перейдите в (меню Applications→Utilities→System Monitor либо Приложения→Утилиты→Системный монитор) в русской локализации. Так же если у вас стоит новая версия дистрибутива Ubuntu то есть 12.04/14.04 системный монитор мы можем найти с помощью поиска в меню Dash.
Опишу более детально, какие функции выполняет системный монитор.
- Вкладка «Процессы», в данном пункте перечислены все процессы которые на текущий момент запущены в системе, мы в любой момент можем отметить нужный нам и нажать на кнопку — «Завершить процесс». Конечно нужно уделить особое внимание и понимать, что завершать, так как можно завершить системный процесс по ошибке либо же по незнанию и это может вызвать дальнейшие ошибки в работе системы либо же приложений.
- Вкладка «Ресурсы», в данному пункте мы можем наблюдать на сколько процентов мы загружаем процессор либо если у вас несколько ЦП, то вы сможете видеть нагрузку на каждый.
- Дополнительно, в этом же пункте мы имеем возможность наблюдать за использованием оперативной памяти и файла подкачки, насколько они загружены проценты итд. Иногда очень полезно посмотреть при запущенном к примеру браузере совместно с видеоплеером в режиме онлайн увидеть как это нагружает оперативку.
- Так же ниже мы имеем возможность наблюдать график использования сети, то есть скорость на текущий момент, далее количество потребления трафика(получено и отправлено).
- Вкладка «Файловые системы», в данном пункте мы имеем возможность наблюдать наши диски, то есть все жесткие диски которые у вас подключены, флешки итд.
Дополнительно, как еще один дополнительный вариант, мы можем завершить нужный процесс в консоли то есть в терминале.
Для запуска терминал, перейдите в (меню Applications→Accesories→Terminal либо Приложения→Стандартные→Терминал) в русской локализации, либо перейдите в меню Dash и введите в поиск Terminal запустим приложение, далее введите команду:
Команда выше запросит от нас ввод пароля, обратите внимание, пароль при вводе никак не отображается, ни звёздочками, ни чёрточками, никак. Это нормально и так и должно быть. Ввели жмем Enter.
Вроде как приложение top установлено по умолчанию в системе, если нет то придется выполнить команду apt-get install top, после установки заново введем команду выше.
Далее мы увидим примерный вывод процессов которые у нас запущены, но уже в консольном варианте:
Для примера, я выделил два процесса это браузер Google Chrome и Voip клиент Skype(скайп). Представим себе ситуацию, что одно из этих приложений зависло и мы не можем их закрыть и вы уже решаетесь, а не перезагрузить ли систему. Не спешите, если так случилось, в терминале выполните команду:
kill 3795 для закрытия нашего браузера
kill 3882 для закрытия скайпа
Так же одной командой мы можем убить то есть завершить целый ряд процессов с помощь команды:
kill 3795 3882 4981 1172
Чтобы выйти с консольного диспетчера процессов, выполните комбинацию клавиш CTRL+Z. Как видим ничего сложного нет, просто через пробел перечисляем нужные процессы и жмем Enter. Вроде все легко, но если у вас есть дополнительные вопросы, милости прошу задаем в комментариях.
Источник: linuxsoid.ru