Base linux как убрать

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

Несмотря на то что 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:

Читайте также:  Темы для windows edge

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 очень опасна, но так делать не стоит. Надеюсь, эта информация была полезна для вас.

Источник

Как удалить раздел в Linux

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

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

Как удалить разделы на диске Linux

1. Графический интерфейс

В графическом интерфейсе чаще всего для управления дисками и разделами используется программа Gparted. Обычно она уже предустановлена в большинстве дистрибутивов. Если же в вашем дистрибутиве её нет, то программу достаточно просто установить. Для этого в Ubuntu или Debian выполните такую команду:

sudo apt install gparted

Для Fedora команда будет выглядеть вот так:

sudo dnf install gparted

В Arch Linux тоже будет отличаться только пакетный менеджер:

sudo pacman -S gparted

Запустить программу можно из главного меню:

Далее в правом верхнем углу программы выберите диск, на котором вы хотите удалить раздел. В данном случае будет использоваться /dev/sdb:

Читайте также:  Ubuntu linux сервер настройка

Если раздел сейчас смонтирован в системе, то удалить его вы не сможете. На это указывает ключ возле диска. Сначала необходимо его размонтировать. Для этого откройте контекстное меню и выберите Отмонтировать:

Далее можно удалить раздел. Для этого в том же контекстном меню выберите Удалить. Теперь этот пункт будет активным:

Раздел удалён в интерфейсе программы, но изменения ещё не применены к системе. Для того чтобы их применить кликните по зелёной галочке или откройте меню Правка и выберите Применить все изменения:

Далее применение изменений надо подтвердить. Если не возникло никаких ошибок, дальше пойдёт процесс удаления раздела, а потом вы сможете пользоваться появившемся свободным местом по своему усмотрению:

Теперь вы знаете удалить разделы на диске Linux в графическом интерфейсе.

2. Псевдографический интерфейс

Если вам нужно удалить раздел Linux в терминале, но у вас нет доступа к графическому интерфейсу и вы не хотите пользоваться утилитами командной строки, можно воспользоваться утилитой с псевдографическим интерфейсом — cfdisk. Если она ещё не установлена в вашей системе её можно установить так:

sudo apt install cfdisk

Для других дистрибутивов будет отличаться только пакетный менеджер. Перед запуском утилиты надо определиться на каком диске нужно удалять раздел. Для этого можно воспользоваться командой lsblk:

Например, можно удалить тот же /dev/sdb1. Обратите внимание, что если этот раздел диска примонтирован к системе, то его сначала надо отмонтировать. Для этого выполните:

sudo umount /dev/sdb1

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

sudo cfdisk /dev/sdb

В окне утилита отобразит список доступных разделов на выбранном диске:

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

Утилита сообщает, что раздел удалён, но как и в случае с Gparted изменения надо записать на диск, для этого нажмите кнопку Запись:

Затем введите слово yes, для того чтобы подтвердить изменения:

Теперь вы можете использовать полученное свободное пространство. Для того чтобы закрыть программу используйте кнопку Выход. Благодаря cfdisk удалить разделы жесткого диска linux в терминале не так уже и сложно.

3. Командная строка

Если два предыдущих варианта вам не подходят, можете воспользоваться утилитой fdisk. У неё нет никакого интерфейса и вам придется делать всё вручную. Сначала посмотрите список дисков:

Далее можно запускать программу. Программе необходимо передать путь к диску (не разделу), на котором надо удалить раздел и запустить её надо от имени суперпользователя. Например:

sudo fdisk /dev/sdb

Утилита работает в интерактивном режиме и имеет свой интерпретатор команд. Для вывода доступных команд нажмите m и Enter:

Для того чтобы посмотреть список разделов на выбранном диске выполните команду p:

Для удаления раздела необходимо выполнить команду d. Обратите внимание на номера разделов в списке после sdb. Команда спросит номер раздела, который вы хотите удалить и именно этот номер надо указать. Например 1:

Все изменения выполнены только в памяти программы. Для того чтобы записать их на диск и удалить разделы fdisk linux необходимо использовать команду w:

После этого можно пользоваться свободным пространством. Более подробно об утилите fdisk можно почитать в этой статье.

Выводы

В этой небольшой статье мы разобрали как удалить раздел в Linux несколькими способами. Как видите, есть простые способы, есть более сложные, но во всём можно разобраться. А какой программой пользуетесь вы для удаления разделов? Напишите в комментариях!

Читайте также:  Файловые менеджеры без windows

Источник

Как удалить файл через терминал Linux

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

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

В Linux для удаления файлов предусмотрена стандартная утилита rm. Как и все остальные, стандартные утилиты в имени rm тоже заложена определенная идея. Это сокращение от английского слова Remove.

Удаление файлов в Linux

Чтобы удалить файл linux достаточно передать в параметрах команде адрес файла в файловой системе:

Чтобы удалить все файлы, начинающиеся на слово file можно использовать специальный символ *, означает любой символ в любом количестве:

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

rm: удалить пустой обычный файл «/home/user/file»?

Если файлов очень много, вы уверены в правильности команды и отвечать каждый раз y неудобно, есть противоположная опция — f. Будут удалены все файлы без вопросов:

rm -f /home/user/file*

Для удаления директорий, вместе с файлами и поддиректориями используется опция -R, например:

rm -Rf /home/user/dir

Будет удалено все что находиться в папке dir, и эта папка. Только будьте бдительны, чтобы не получился знаменитый патч Бармина:

Не стоит выполнять эту команду в своей системе, как видите, она удаляет все файлы в файловой системе Linux.

Удаление файла в linux также возможно с помощью утилиты find. Общий синтаксис find:

find папка критерий действие

Например, мы хотим удалить файл linux по имени:

find . -type f -name «file» -exec rm -f <> \;

Будут найдены все файлы с именем file в текущей папке и для них вызвана команда rm -f. Можно не вызывать стороннюю утилиту, а использовать действие delete:

find . -type f -name «file» -delete

Удалить все файлы в текущей директории, соответствующие определенному регулярному выражению:

find . -regex ‘\./[a-f0-9\-]\.bak’ — delete

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

find /path/to/files* -mtime +5 -exec rm <> \;

Будет выполнено удаление файлов через терминал все файлы в папке старше 5-ти дней.

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

Опцией -n — можно указать количество перезаписей диска, по умолчанию используется 3. А если указать опцию -z программа при последней перезаписи запишет все нулями чтобы скрыть, уничтожение файла.

Выводы

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

Источник

Оцените статью