Как прервать загрузку linux

Обновлено: 03.07.2024

Можно ли отключить X во время загрузки? Я настраиваю сервер, поэтому было бы неплохо, если бы он не загружал графический интерфейс при каждой загрузке.

На экране входа в систему GDM от 11.04 и более ранних, я думаю, была опция сеанса xterm, которая просто выдаст вам командную строку. В качестве альтернативы вы можете получить что-то из опции восстановления в GRUB, хотя, вероятно, вы не сможете установить это значение по умолчанию таким образом. Спасибо. Итак, как мне остановить загрузку LightDM при загрузке?

Редактируйте /etc/default/grub с вашим любимым редактором, например nano :

Найдите эту строку:

Измените это на:

Для систем, которые используют systemd

Это дополнительный шаг для системных выпусков, например, Ubuntu 15.04, все еще необходимы шаги, описанные выше для grub.

Вы должны сказать, systemd чтобы не загружать графический менеджер входа в систему:

Вы по-прежнему сможете использовать X, набрав startx после входа в систему.

Это работает для lightdm, это работает для любого графического менеджера входа в систему? Это правильный способ загрузки системы Linux без загрузки X-сервера? Просто кажется более логичным? Выберите один . :) Любой графический менеджер входа в систему? Вместо этого это решение привязано к grub, который не используется (или даже недоступен) на новых мобильных платформах, где работает Ubuntu, а отключение службы не зависит от загрузчика. Надлежащим образом ? Факт не упоминается. Более логично? Ингибирование определенной службы не является логически параметром времени загрузки. Но вы все еще как-то правы из-за другого факта: ваше решение не только блокирует lightdm, но и plymouth (на шаге initrd и других), поэтому его семантика заключается не в «отключении X», а в «отключении любой графической настройки», и это требует возни Конфигурация загрузчика. Спасибо ! Поскольку вопрос задан для Ubuntu, а не для мобильной платформы (можете ли вы что-нибудь изменить в мобильной версии Ubuntu? Почему это было бы хорошо? Я предполагаю, что вы будете заблокированы в подсказке, которая ничего не знает о вводе с клавиатуры и принимает причудливые прикосновения пальцев и жесты: P) Я предполагаю, что мы говорим об Ubuntu, настольной операционной системе на базе Linux, которую я люблю и могу изменять в соответствии со своими потребностями. :) Но вы правы, есть проблема семантики с заголовком поста, не стесняйтесь редактировать его как-нибудь более правильно! Спасибо за комментарии. @Joyce сначала запустится, systemctl get-default чтобы узнать, каково текущее имя уровня запуска и запомните его имя, затем используйте его, systemctl set-default multi-user.target чтобы изменить его на «multi-user.target», или вместо этого запустите эти команды равенства и посмотрите изменения. rm '/etc/systemd/system/default.target' тогда ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target' . Если проблема все еще существует, верните уровень запуска по умолчанию, через который вы его запомните systemctl set-default RunLevelName .

Установка графического интерфейса, вероятно, приведет к его автоматическому запуску, но в Ubuntu очень легко загружаться в текстовом режиме. Просто откройте /etc/default/grub как root и добавьте text в

линия. Затем запустите:

Ваша система всегда будет загружаться в текстовом режиме.

Если вы хотите загрузиться с GUI, просто нажмите e в меню загрузки и удалите text из kernel строки.

Если вы хотите запустить графический интерфейс после загрузки, просто запустите:

Надеюсь это поможет :)

Ubuntu 11.10 не использует gdm в качестве диспетчера входа в систему по @hhlp: исправлено. В последнем обновлении Lightdm задание upstart учитывает команду text cmdline ядра. @AshRj: Да, это действительно для всех версий Ubuntu, использующих upstart :)

Если вы хотите загрузиться в текстовом режиме:

Редактировать /etc/default/grub . Например:

Найдите эту строку:

Затем обновите Grub:

Примечание. При удалении quiet splash (то есть GRUB_CMDLINE_LINUX_DEFAULT="" ) во время загрузки будет отображаться текст, а затем будет отображаться графический экран входа в систему, как обычно. Замена quiet splash на text оставит вас в приглашении входа в систему; чтобы начать сеанс GNOME, используйте sudo /etc/init.d/gdm start или startx .

Чтобы отключить GDM:
Установите Bum .

После установки он будет найден в Системе >> Администрирование >> Bootup-Manager

альтернативный текст

Снимите флажок Диспетчер отображения Gnome

Конфиг GRUB работал. Из любопытства, зачем мне отключать GDM? Подтверждено в 13.04, что GRUB_CMDLINE_LINUX_DEFAULT="" работает, чтобы показать детали во время загрузки, все еще при запуске графического входа в систему.

Если вы используете lightdm в качестве менеджера входа в систему, его можно отключить, отключив его.

Вы можете использовать переопределение:

И запустить lightdm по команде:

Чтобы восстановить вашу систему так, чтобы lightdm всегда запускался при загрузке:

Для получения дополнительной информации, выскочка поваренная книга ваш друг:

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

Чтобы остановить запущенный X-сервер startx , просто прекратите сеанс.

Чтобы остановить X-сервер, запущенный диспетчером входа в систему (GDM), запустите

затем перейдите к tty , например, нажав Ctrl - Alt - F1 , затем войдите в систему в текстовом режиме.

Чтобы вообще не запускать Менеджер входа в систему (и X), измените

затем обновите файл конфигурации grub с помощью

так что в следующий раз вы перейдете непосредственно в текстовый режим, и вам нужно startx будет начать сеанс X, или в качестве альтернативы sudo service gdm start .

Я сделал следующее

Шаг 1 Сначала обновите ваш репозиторий, запустив

sudo apt-get update

Шаг 2 В старой версии lightdm есть какая-то ошибка, поэтому мы должны обновить ее. Для этого беги,

sudo apt-get install lightdm

Шаг 3 Теперь нам нужно изменить конфигурацию grub. Шаг 3а Откройте в /etc/default/grub вашем любимом редакторе и измените

Шаг 3b Также прокомментируйте GRUB_HIDDEN_TIMEOUT = 0 Эта строка предназначена для скрытия меню GRUB.

Шаг 4 Теперь мы обновим конфигурацию GRUB.

Шаг 5 Ubuntu 11.10 Desktop Edition использует lightdm для графического интерфейса. Нам нужно отключить то же самое

sudo update-rc.d -f lightdm remove

Шаг 6 Теперь перезагрузите компьютер.

Да, сказать системе, чтобы она запускалась в консоли во время загрузки, можно путем редактирования команды grub. Когда вы достигнете меню grub, выделите запись Ubuntu и нажмите e .

Вы увидите текст, как на изображении ниже:

введите описание изображения здесь

Изменить текст тихий всплеск на текст . Нажмите F10 для запуска. (Источник: Rolling-Ubuntu ). Я проверил это на своей системе, 14.04, загрузился в текстовую консоль, lightdm не видно. Начал Lightdm с sudo initctl start lightdm

Чтобы избежать этого каждый раз, вы можете добавить постоянную запись grub с такой опцией, как предложено в этом ответе.

Альтернативное предложение состоит в том, чтобы изменить уровень запуска по умолчанию и изменить уровни запуска, при которых lightdm запускается / останавливается, как это было предложено в другом ответе на этот же пост.

Ubuntu 18.04 Live ISO по-прежнему запускает Xorg независимо от text варианта. Вместо этого, указание уровня запуска, просто 3 вместо text , заставляет его работать. Кредит идет на этот ответ . @Ruslan Полезная информация, спасибо. Мой ответ на самом деле предназначен только для настольных компьютеров и был опубликован в 2015 году, когда был выпущен 14.04. Я тестировал это на Live ISO настольной версии Ubuntu 18.04. Ничто не требует сервера или других выпусков, чтобы эта 3 опция работала (и text чтобы не работала, что случилось со мной).

Я заметил, что этот поток вращается вокруг предположения, что вы используете LightDM в качестве диспетчера дисплеев. Хотя это может быть обычный DM / welcomer, это не является частью первоначального вопроса. (И он не уточнил ..)

Я использую KDE / KDM на моем сервере. Вместо этого я просто отключаю запуск / сервис upstart под уровнем запуска 2:

/etc/init/kdm.conf : (kdm: 4: 4.8.5-0ubuntu0.3, версия Upstart: 1.5-0ubuntu7.2)

Предполагая, что при новой перезагрузке ваш уровень запуска по умолчанию равен 2, у вас будет консоль, а не KDM. Затем вы можете запустить DM / DE вручную, когда это необходимо = используйте 'startx' / etc. Чтобы вернуть машину в консоль и полностью выйти из X-сервера после этого, просто используйте «Выйти».

Другие сценарии dm .confs аналогичны. (Я настраиваю свой сервер следующим образом . чтобы иногда работать с графическим интерфейсом, но не тянуть ресурсы, когда они не используются / не нужны или просто перезагружаются.)

РЕДАКТИРОВАТЬ

(Моя текущая система: Upstart 1.12.1 / Ubuntu 14.04)

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

эхо "ручной" | sudo tee -a / etc / init / .override

Это может быть любая служба в / etc / init, включая kdm / gdm. 'startx' для запуска по мере необходимости после перезагрузки.

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

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

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

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

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

  • SIGINT - самый безобидный сигнал завершения, означает Interrupt. Он отправляется процессу, запущенному из терминала с помощью сочетания клавиш Ctrl+C. Процесс правильно завершает все свои действия и возвращает управление;
  • SIGQUIT - это еще один сигнал, который отправляется с помощью сочетания клавиш, программе, запущенной в терминале. Он сообщает ей что нужно завершиться и программа может выполнить корректное завершение или проигнорировать сигнал. В отличие от предыдущего, она генерирует дамп памяти. Сочетание клавиш Ctrl+/;
  • SIGHUP - сообщает процессу, что соединение с управляющим терминалом разорвано, отправляется, в основном, системой при разрыве соединения с интернетом;
  • SIGTERM - немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы;
  • SIGKILL - тоже немедленно завершает процесс, но, в отличие от предыдущего варианта, он не передается самому процессу, а обрабатывается ядром. Поэтому ресурсы и дочерние процессы остаются запущенными.

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

Сначала Ctrl+C, если это возможно, затем SIGTERM - он хоть и завершает процесс, но делает эту культурно, и только в крайнем случае SIGKILL. А теперь рассмотрим как убить процесс по pid Linux на практике. Если вы всегда используете SIGKILL, тогда на ум приходит такая картинка:


Как убить процесс Linux?

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

$ kill -сигнал pid_процесса

Сигнал представляет собой один из выше перечисленных сигналов для завершения процесса. По умолчанию, если этот параметр не указан, используется сигнал SIGTERM, что является очень правильно. Также нам нужно указать какой процесс нужно завершить. Для этого используется уникальный идентификатор процесса - PID.

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

ps aux | grep ping


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

kill -TERM 20446


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

kill -KILL 20446

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


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

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

Утилита pkill - это оболочка для kill, она ведет себя точно так же, и имеет тот же синтаксис, только в качестве идентификатора процесса ей нужно передать его имя. Утилита сканирует директорию proc и находит PID первого процесса с таким именем, затем отправляет ему SIGTERM. Таким образом, вы можете убить процесс по имени Linux. Например, если мы хотим завершить тот же ping:


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

pkill -TERM ping

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


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

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

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


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


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

Выводы

В этой статье мы рассмотрели как убить процесс Linux. Иногда эта задача может быть очень полезной, но важно понимать, что ее нужно выполнять правильно. Нельзя сказать, что передача SIGKILL вместо SIGTERM очень опасна, но так делать не стоит. Надеюсь, эта информация была полезна для вас.

Favorite

Добавить в избранное

Главное меню » Ubuntu » Загрузка Ubuntu в аварийном и спасательном режимах

Загрузка Ubuntu в аварийно-спасательном режиме

U buntu является самой популярной операционной системой для пользователей настольных компьютеров. Он всегда был бесплатный, безопасный и дружелюбный с пользователями. Мы можем загрузить Ubuntu 20.04 L TS или любую версию машины с Ubuntu в аварийном и спасательном режимах, если вы забыли пароль или что-то не так с ним, мы также можем сказать это как режим восстановления в Ubuntu.

Если вы допустили ошибку в файле /etc/fstab, где мы определили смонтированную файловую систему, и вы перезагрузите компьютер, то он автоматически загрузится в аварийном режиме.

Загрузочная машина в режиме Rescue (режим помощи):

Мы также можем сказать, что это однопользовательский режим. Как только вы запустите компьютер, вам нужно будет нажать «Esc», чтобы прервать процесс загрузки, прежде чем начинать загрузку. Вы увидите ниже рисунок.

Загрузка Ubuntu в аварийно-спасательном режиме

Перед добавлением режима восстановления. если вы найдете слово «$ vt_handoff», вам придется удалить эту строку, которая существует в строке Linux.

Теперь мы должны нажать «e» и найти строку Linux, где вы должны добавить «systemd.unit = rescue.target». После того как вы добавили это, как показано на рисунке ниже, вы должны нажать «ctlr + x» или «f10».

Загрузка Ubuntu в аварийно-спасательном режиме

Он загрузит систему в режиме восстановления и нажмет «Enter». Вы можете изменить пароль пользователя, а затем перезагрузить компьютер.

Загрузка Ubuntu в аварийно-спасательном режиме

Режим Emergency (Аварийный режим):

По умолчанию файловая система находится в режиме только для чтения. Вы должны прервать загрузку, нажав «Esc», а затем нажмите «e». Вам нужно найти строку Linux, где вы определите «systemd.unit = emergency.target», а затем нажмите «ctlr + x» или «f10», чтобы перезагрузить компьютер.

Этот режим в основном используется для исправления повреждения файловой системы, когда мы не можем загрузить машину в режиме восстановления из-за проблем с файловой системой.

Читать Как безопасно скачивать и выгружать файлы с помощью SFTP

Загрузка Ubuntu в аварийно-спасательном режиме

После перезагрузки в аварийном режиме, вы должны нажать «Enter», и вы можете найти проблемы здесь, но мы просто восстановим пароль root. По умолчанию все разделы или файловые системы будут находиться в режиме только для чтения, когда вы находитесь в аварийном режиме. мы должны сделать его доступным для записи, используя следующие команды.

Загрузка Ubuntu в аварийно-спасательном режиме

Теперь вы можете изменить пароль и перезагрузить компьютер. Вы можете начать работать обычно, как раньше.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как убить или прекратить процесс Linux: ультимативное руководство.

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

Мастер управления неотзывчивыми процессами в Linux

Вы узнаете несколько способов как в Linux завершить процесс, который не подает признаков жизни. Если вы юзали Windows, скорее всего вам знаком шорткат Ctrl + Alt + Delete. Точно так же пользователи Mac имеют метод Command + Option + Escape для уничтожения замороженных процессов. Linux гораздо более универсален, чем его аналоги, и предлагает более одного метода для устранения мертвых процессов.

Различные методы убийства мертвого процесса Linux

В основном мы опишем два метода убийства зомби-процессов. Мы будем использовать терминал Linux для первого метода. Для этого сначала нужно идентифицировать id процесса, он же PID, от английского process identifier – идентификатор процесса. После успешного получения мы сможем использовать этот PID, посылая сигнал для уничтожения программы ориентируясь на номер-идентификатор.

Вы также узнаете, как обкашливать такие вопросики, используя графический интерфейс пользователя. Для этого мы собираемся использовать приложение «Системный монитор», доступное в Ubuntu. Хотя это приложение GNOME, аналогичные инструменты доступны и для других сред Linux.

Завершить неотвечающий процесс из командной строки


PID или идентификатор процесса — это уникальный номер, который идентифицирует процесс. Эти номера генерируются ядром Linux непосредственно во время выполнения процессов, и диспетчер операционной системы управляет их процессорной активностью. Поэтому, когда вы вызываете приложение, ядро ​​сначала запускает необходимые процессы и присваивает им эти уникальные значения PID. С процессом может быть связано несколько PID. Более того, у каждого процесса есть один родительский процесс с уникальным PPID (идентификатор родительского процесса).

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

Узнайте информацию о PPID

Вы можете узнать PPID процесса, используя несколько команд управления процессами в Linux, таких как pidof, pstree и pgrep. Давайте рассмотрим их одну за другой и посмотрим, как получить PID процесса Linux.

Способ 1: использование команды ps

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

Давайте подробнее поговорим о том, что происходит на демонстрации выше. Во-первых, мы запустили в фоновом режиме текстовый редактор Nano. Затем мы использовали команду ps вместе с командой grep, чтобы узнать PPID этого редактора. Вывод может содержать несколько идентификаторов процессов, но нас интересует только первый, поскольку это наш PPID. Мы также можем использовать команду Linux awk, чтобы узнать эту информацию, как показано ниже.

Эта команда более гибкая, так как она отфильтрует всю несущественную информацию, и покажет только номер PPID, который мы ищем.


Способ 2: Использование команды pstree

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

Теперь подробности. Во-первых, мы породили процесс в фоновом режиме с помощью первой команды. Затем вторая команда получает PPID этого процесса с помощью команды grep в Linux. Наконец, третья команда показывает нам, как получить это же значение с помощью команды awk.

Способ 3: использование команды pgrep

Команда pgrep является одной из самых простых команд управления процессами в Linux. Он проверяет список всех запущенных процессов и выводит PPID процесса. Она работает путем сопоставления регулярных выражений и очень хорошо подходит для написания шелл-скриптов Linux.

Мы породили nano-процесс аналогично предыдущим примерам. Затем мы получили его PPID с помощью команды pgrep. Как только мы получим это значение, мы сможем выполнить задачу уничтожения мертвого процесса максимально легко.

Способ 4: Использование команды pidof

Команда pidof — это еще один простой, но полезный способ определения PPID процесса Linux. Он отображает как PPID, так и все другие PID, связанные с процессом. Ознакомьтесь с приведенной ниже демонстрацией, чтобы увидеть, как использовать ее на практике.

При использовании команды pidof для проверки запущенных процессов в Linux вы часто будете видеть несколько PID. Обычно в таких случаях первый или последний номер — это PPID, в зависимости от того, находятся они в порядке возрастания или в порядке убывания. Вы можете использовать опцию -s pidof, чтобы избежать этого. Так будет отображено только значение PPID.


Способ 5: использование команды top

Команда top обеспечивает представление в реальном времени всех запущенных процессов в Unix-подобных операционных системах. Вы можете использовать её, чтобы отобразить список задач Linux в вашем терминале и узнать информацию о PID определенного процесса.

Используйте следующие команды для получения PPID определенного процесса из выходных данных команды, приведённой выше.

Поскольку top обеспечивает вывод в реальном времени вместо выгрузки статических данных на экран, мы использовали опцию -n1 и -b для получения статического вывода. Затем вы можете получить информацию о PPID с помощью команды grep или awk.

Убить не отвечающий процесс Linux

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

Способ 1: использование команды kill

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

Как видите, kill предлагает 64 различных сигнала. Однако в этом руководстве мы обсудим только два из них. Это сигнал 9 (SIGKILL) и сигнал 15 (SIGTERM). SIGTERM или сигнал 15 — это безопасный метод уничтожения не отвечающего процесса. SIGKILL или сигнал 9, с другой стороны, принудительно убивает процесс Linux.

Вышеприведенные команды эквивалентны, и они принудительно завершат процесс с PID 8631. Это PPID процесса «nano» в моей системе. Замените его на PID не отвечающего процесса в вашей системе.

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


Способ 2: использование команды pkill

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

Вы можете использовать любую из перечисленных выше команд pkill для уничтожения зомби-процесса в Linux. Также команда pkill позволяет вам отправлять определенные завершающие сигналы.

Способ 3: использование команды killall

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

В первом примере показано базовое использование команды killall в Linux. Вторая команда сообщит, успешно ли выполнено задание на уничтожение, а третья команда запросит подтверждение у пользователя, прежде чем убить процесс. По умолчанию killall использует сигнал SIGTERM для процессов уничтожения. Однако вы можете указать сигнал вручную, как показано в последнем примере.

Способ 4: использование удобных однострочников

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

Теперь подробнее, в первом примере мы использовали интерполяцию оболочки для передачи PID процесса "nano" команде Linux kill. Второй пример использует несколько повседневных команд терминала и перенаправление ввода / вывода, чтобы завершить процесс. Вы сможете создавать свои собственные изящные однострочники, когда лучше освоитесь с терминалом Linux.


Способ 5: уничтожение нескольких процессов с помощью шелл-скриптов Linux

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

Теперь сохраните этот файл и добавьте разрешение на выполнение, введя команду ниже.

Теперь вы можете передать этому сценарию имена процессов, которые вы хотите завершить.

Просто замените аргументы именами не отвечающих процессов Linux в вашей системе.


Завершить неотвечающий процесс из графического интерфейса

Вы также можете завершить неотвечающий процесс из GUI или window X. Мы обсудим два способа сделать это в следующем разделе.

Способ 1: использование приложения xkill

Современные дистрибутивы Linux используют оконную систему X window для предоставления конечному пользователю элегантного графического интерфейса. Существует простой инструмент под названием xkill, который позволяет юзерам закрывать неотвечающее окно графического интерфейса. Это возможно, поскольку в Linux окно заголовка приложения отделено от самого приложения.

Просто зайдите в эмулятор терминала Linux и введите xkill. Он превратит ваш курсор мыши в кнопку X, которую можно использовать для уничтожения любого окна GUI.

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

Способ 2. Использование приложения System Monitor в Ubuntu

Большинство основных дистрибутивов Linux поставляются с какими-то инструментами мониторинга графического интерфейса, которые позволяют пользователям «графически» завершать зависший процесс Linux. Например, приложение System Monitor в Ubuntu позволит нам интуитивно прекратить не отвечающий процесс. Вы можете просто выбрать мертвый процесс из списка процессов и уничтожить его, щелкнув правой кнопкой мыши по процессу и выбрав опцию уничтожения.

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

Послесловие

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

Читайте также: