как удалить процесс в линукс

В этой статье мы рассмотрим несколько самых распространенных способов завершить процесс Linux. Опишем подробно как происходит остановка процесса и как все сделать правильно.

Как происходит завершение процесса?

Управление процессами в операционной системе Linux осуществляется с помощью сигналов. В том числе и завершение любого процесса. Сигналы передает система, но также их может передавать пользователь с помощью специальных команд или даже сочетаний клавиш в терминале. Когда процессу приходит сигнал о необходимости завершиться, он должен выполнить некоторые подготовительные действия.

Необходимо завершить дочерние процессы, удалить временные файлы, сокеты и так далее. Но в зависимости от сложности ситуации процесс может реагировать не на все сигналы. Рассмотрим основные сигналы, которые используются для завершения процесса:

Важно понимать, что нужно дать процессу возможность завершиться корректно. Желательно, чтобы порты и сокеты были освобождены, закрыты и удаленны временные файлы. Поэтому никогда не передавайте сразу SIGKILL. Передавайте сигналы завершения в последовательности, как они перечислены выше.

Для передачи сигналов процессам в Linux используется утилита kill. Ее синтаксис очень прост:

Допустим, у нас выполняется утилита ping. Мы хотим ее завершить с помощью kill. Тогда, сначала мы узнаем ее идентификатор с помощью команды ps:

В первой строчке отобразится сама утилита ping, а во второй сама программа ps. Берем нужный PID и завершаем процесс с помощью SIGTERM:

И только если после этой команды процесс продолжил висеть, а это вы можете проверить, выполнив ps. Только теперь можно выполнить SIGKILL:

Теперь снова проверяем:

Если процесс запущен от суперпользователя, то, естественно, вам нужно использовать sudo. Не всегда удобно уничтожать процесс по его PID, как минимум, потому, что вам этот PID нужно еще узнать. Мы могли бы нагородить сложных конструкций с использованием xargs, чтобы вычислять автоматически pid по имени процесса и сразу же его завершать, но в этом нет необходимости. Уже существуют специальные утилиты.

Как завершить процесс с помощью pkill

Также можно вручную задать тип сигнала:

Вместо ps, вы можете использовать утилиту pgrep для поиска pid процесса, убедимся что наша программа завершена:

Но если вам программа создала несколько процессов, например, браузер chromium или firefox создают отдельный процесс для каждой из вкладок, то эта утилита мало чем поможет. Тут нужен следующий вариант.

Как остановить процесс с помощью killall

killall работает аналогично двум предыдущим утилитам. Она тоже приминает имя процесса в качестве параметра и ищет его PID в директории /proc. Но эта утилита обнаружит все процессы, с таким именем и завершит их. Например:

Как видите, запущено несколько процессов, осталось остановить процесс Linux с помощью killall:

Команда завершит все запущенные утилиты ping, вы можете убедиться в этом еще раз выполнив pgrep:

Выводы

Источник

Убиваем процессы в Linux — команды ps, kill и killall

Под процессом мы будем понимать запущенную в системе копию программы. Например, если вы открыли три окна калькулятора (например, gcalctool), это значит, что вы запустили три процесса.

Находим PID зависшего процесса

Каждый процесс в Linux имеет свой идентификатор, называемый PID. Перед тем, как выполнить остановку процесса, нужно определить его PID. Для этого воспользуемся командами ps и grep. Команда ps предназначена для вывода списка активных процессов в системе и информации о них. Команда grep запускается одновременно с ps (в канале) и будет выполнять поиск по результатам команды ps. Вывести список всех процессов можно, выполнив в командной строке:

Но, как правило, список очень большой и найти процесс, который мы хотим «убить», бывает не так просто. Здесь на помощь приходит команда grep. Например, чтобы найти информацию о процессе с именем gcalctool выполните команду:

Команда grep выполнит поиск по результатам команды ps и на экран будут выведены только те строки, которые содержат строку (слово) gcalctool. Здесь есть одна интересная деталь, например, если у вас не запущено приложение gcalctool, то после выполнения ps axu | grep gcalctool вы получите:

То есть мы получили сам процесс grep, так как в качестве параметра команде мы указали слово gcalctool, и grep нашел сам себя в выводе команды ps.

Если процесс gcalctool запущен, то мы получим:

Есть еще один более простой способ узнать PID процесса — это команда pidof, которая принимает в качестве параметра название процесса и выводит его PID. Пример выполнения команды pidof:

«Убиваем» процесс командой kill

Сигнал SIGTERM может и не остановить процесс (например, при перехвате или блокировке сигнала), SIGKILL же выполняет уничтожение процесса всегда, так как его нельзя перехватить или проигнорировать.

Убиваем процессы командой killall

Команда killall в Linux предназначена для «убийства» всех процессов, имеющих одно и то же имя. Это удобно, так как нам не нужно знать PID процесса. Например, мы хотим закрыть все процессы с именем gcalctool. Выполните в терминале:

Команда killall, также как и kill, по умолчанию шлет сигнал SIGTERM. Чтобы послать другой сигнал нужно воспользоваться опцией -s. Например:

Заключение

Некоторые процессы не удается остановить под обычным пользователем. Например, если процесс был запущен от имени пользователя root или от имени другого пользователя системы, то команды kill и killall нужно выполнять от имени суперпользователя, добавляя sudo (в Ubuntu):

Бывают ситуации, когда вы работаете в графическом интерфейсе (например, GNOME) и вам не удается открыть эмулятор терминала, чтобы остановить зависший процесс. Тогда можно переключиться на виртуальную консоль клавишами Ctrl+Alt+F1, залогиниться в ней и выполнять команды уже из нее. А потом перейти обратно, нажав Ctrl+Alt+F7.

Справку по использованию любой команды можно получить командой man:

Источник

Как мы знаем, Linux — многопользовательская ОС, поэтому с каждым пользователем могут быть связаны его собственные процессы. Такое разделение существует в целях безопасности. Запуская ту или иную программу от имени непривилегированного пользователя, ОС снижает риски несанкционированного проникновения и риски повреждения системных файлов.

В этой статье мы расскажем о том, как завершить все запущенные процессы конкретного пользователя.

Как завершить все процессы пользователя?

Для начала сформируем перечень всех процессов всех пользователей. В терминале Linux выполним следующую команду:

Как видно на скриншоте, имеются процессы, связанные с тремя пользователями (root, mint1 и mint). Допустим, нам срочно понадобилось завершить все процессы пользователя mint1.

Здесь следует немного подробнее остановиться на самом понятии процесса в Linux. Процесс – программа, запущенная в виртуальном адресном пространстве. Каждый процесс имеет свой уникальный номер или идентификатор — PID (Process Identificator). Работая с процессами, операционная система идентифицирует процессы именно по PID.

Однако, количество PID может быть куда больше двух. Да и выполнить все действия вообще-то тоже можно с помощью одной команды, умещающейся в одну строку.

Например, используем конвейер и программу grep ( символ | обозначает передачу результатов выполнения первой команды второй команде по конвейеру):

С помощью grep были выбраны все процессы пользователя mint1. Далее необходимо из второй колонки слева выбрать все PID. Сделаем это с помощью программы awk, добавив, соответственно, ещё один конвейер:

С помощью такой конвейеризованной группы команд мы завершили все процессы пользователя mint1.

Подобный конвейер можно было бы сформировать и так:

Однако и это ещё не всё. Нужно ещё проверить наличие процессов, связанных с пользователем mint1, и их состояние. Сделаем это с помощью команды:

Источник

7 способов «убить» зависшее приложение в Linux

Программное обеспечение Linux достаточно надежно, но бывает, что даже самые лучшие приложения могут зависнуть. Вместо того, чтобы ждать сообщения о сбое в работе приложений, вы можете «убить» их, принудительно завершив. На самом деле способов это сделать существует настолько много, что глаза разбегаются!

Если у вас возникают такие проблемы, вот несколько способов, как принудительно завершить программу в Linux.

1. Завершить программу в Linux, просто нажав на «X»

Вы, наверное, уже пытались уйти и сделать себе чашечку кофе, но когда вернулись, обнаружили, что ваша программа зависла, вероятно, у него было достаточно времени, чтобы «отвиснуть», но этого не произошло. Зависшее приложение обычно имеет серые неактивные кнопки управления и у него пропадает возможность перемещения.

Итак, как эту проблему решить? Нажмите на «крестик» в верхнем углу (слева или справа, в зависимости от версии системы Linux). Это должно помочь. Возможно, появится окно с просьбой подождать или принудительно завершить процесс, а также отправить отчет об ошибке.

2. Воспользуйтесь системным монитором, чтобы «убить» процесс Linux

Чтобы закрыть не отвечающее приложение, просто выберите его и щелкните правой кнопкой мыши. Затем у вас появится три варианта:

Лучше всего использовать их по порядку. Однако, если приложение регулярно зависает, можно использовать вариант, в котором вы точно уверены.

3. Принудительное уничтожение процесса Linux с помощью 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.

В следующий раз, когда вам нужно закрыть приложение, просто используйте сочетание клавиш. Указатель мыши станет «X», и вы можете щелкнуть в любом месте приложения, которое хотите закрыть.

Избегайте зависаний программ: обновите свое оборудование

Зависающие программы постоянно вызывают проблемы? Возможно, пора немного обновить ваш компьютер.

Итак, в следующий раз, когда приложение или утилита Linux зависнет и перестанет отвечать на запросы, все, что вам нужно сделать, это применить одно из следующих решений:

Если ни одно из этих решений не работает и вы регулярно испытываете не отвечающие приложения Linux, рассмотрите возможность перехода на облегченную операционную систему Linux.

Источник

Если у вас возникают проблемы с приложением в Linux, вот несколько способов как её решить.

1. Убейте программу Linux, нажав «X»

Вы, наверное, уже пытались уйти и сделать горячий напиток. Если вы вернулись на свой компьютер и обнаружили, что приложение все еще зависло, вероятно, у него было достаточно времени, чтобы снова начать работать. Приложение, не отвечающее на запросы, обычно имеет серые кнопки или параметры, которые не работают. Вы также можете не перемещать окно приложения по экрану.

Итак, каково решение? Нажмите кнопку X в верхнем углу (слева или справа, в зависимости от графической оболочки в которой вы работаете и её настроек). Это должно остановить программу. Вы можете увидеть диалоговое окно с просьбой подождать или принудительно завершить процесс сейчас.

Если все пойдет по плану, некоторые дистрибутивы предложат вам отправить сообщение об ошибке.

Следующий вариант – открыть утилиту System Monitor вашей операционной системы Linux. Обычно это находится в меню «Системные инструменты» и отображает список запущенных процессов на вкладке «Процессы».

Чтобы закрыть не отвечающее приложение, просто выберите его и щелкните правой кнопкой мыши. Затем у вас есть три варианта:

Лучше использовать их по порядку. Однако, если приложение регулярно зависает, вы можете использовать команду, которая, как вы знаете, работает.

3. Принудительно уничтожать процессы в Linux с помощью xkill

Другой вариант, который вы можете использовать – это xkill. Это инструмент принудительного уничтожения, предустановленный в Ubuntu, но вы можете установить его через терминал в других дистрибутивах, если это необходимо. При вызове xkill позволит вам закрыть любой процесс на рабочем столе. Установите его с помощью следующей команды:

sudo apt install xorg-xkill

Как только это будет сделано, запустите xkill, просто набрав

Ваш указатель мыши будет отображать крест (или череп). Щелкните левой кнопкой мыши на приложении-нарушителе, чтобы закрыть его.

Если невозможно закрыть приложение, не отвечающее на запросы, одним из этих методов, ориентированных на рабочий стол, решение может быть в командной строке…

4. Используйте команду «kill»

Если ваше приложение не отвечает, а приведенные выше предложения не работают (графический интерфейс может не отвечать), нажмите Ctrl+Alt+T, чтобы открыть Терминал.

Несколько параметров командной строки доступны, чтобы помочь вам закрыть ваше приложение. Более того, их можно использовать либо на вашем компьютере, либо подключившись через SSH с другого устройства.

Команда kill может использоваться здесь, но сначала требуется идентификатор процесса. Вы можете найти это, запустив команду, запрашивающую приложение для его идентификатора процесса:

ps aux | grep [process name]

В результате отобразится идентификатор процесса. Это может быть использовано следующим образом:

Обратите внимание, что вам может понадобиться добавить команду с помощью sudo.

5. Используйте «pgrep» и «pkill»

Что если вы не знаете или не можете найти идентификатор процесса? Вот тут и появляется команда pkill. Вместо идентификатора процесса просто используйте pkill вместе с именем процесса:

pkill [process name]

Кроме того, вы можете использовать команду pgrep, чтобы найти идентификатор процесса:

pgrep [process name]

… И после этого используйте pkill с идентификатором процесса.

Как и в случае команды kill, процесс должен завершиться в течение 5 секунд.

Не повезло с kill или pkill? Пришло время использовать ядерную опцию: killall.

К счастью, это не так разрушительно, как могло бы быть. Команда killall завершит работу всех экземпляров указанной программы. Таким образом, вместо того, чтобы убивать одно окно Firefox, следующая команда завершит их все:

Все, что вам нужно, это имя процесса и команда killall (возможно, с sudo, если этого требует ваша система).

killall [process name]

Естественно, вы должны использовать эту команду только при необходимости. Это не подходит для большинства не отвечающих программных ситуаций.

7. Создайте комбинацию клавиш Force-Kill

Хотите сэкономить время на закрытие не отвечающего программного обеспечения? Наилучшим вариантом является создание сочетания клавиш. Это даст вам немедленную возможность закрыть приложение, но для этого потребуется xkill.

В Ubuntu откройте Параметры > Устройства > Клавиатура и пролистайте список Комбинации клавиш в самый низ, где вы увидите «. Нажимаем на «, чтобы создать новый ярлык. В поля Имя и Команда введите «xkill», затем нажмите кнопку Установить комбинацию клавиш и введите нужную вам комбинацию и нажмите кнопку Добавить. Готово.

В следующий раз, когда вам нужно будет закрыть приложение, просто используйте сочетание клавиш. Указатель мыши станет X, и вы можете щелкнуть в любом месте приложения, которое хотите закрыть.

Избегайте не отвечающего программного обеспечения: обновите свое оборудование

Не отвечающие приложения регулярно вызывают проблемы? Возможно, вы могли бы получить выгоду от внесения некоторых изменений в свой компьютер с Linux.

Установка дополнительной оперативной памяти – это лучший способ повысить производительность вашего компьютера и возможно, именно это вам и нужно, чтобы эти темпераментные приложения перестали отвечать на запросы в будущем.

Итак, в следующий раз, когда приложение или утилита Linux зависнет и перестанет отвечать на запросы, все, что вам нужно сделать, это применить одно из следующих решений:

Если ни одно из этих решений не работает и вы регулярно сталкиваетесь с не отвечающими приложениями в Linux, рассмотрите возможность перехода на облегченную операционную систему Linux.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • как удалить процесс antimalware service executable в windows 10
  • как удалить профиль через реестр windows 10
  • как удалить профиль пользователя в windows 10 в реестре
  • как удалить профиль по умолчанию windows 7
  • как удалить профиль майкрософт в windows 10

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии