Завершить процесс в Linux – команды ps, kill и killall

Если вы когда-нибудь сталкивались с ОС Linux, вы наверняка слышали слово «терминал». Новички обычно воспринимают терминал как что-то страшное и зловещее. Но не все так страшно.

Введение в терминал Linux

Моя бабушка называет любой терминал «терминатором», что добавляет антуража. На самом деле терминал (bash) — это всего лишь командная строка с гораздо более широким набором функций, если сравнивать с Windows. Почти любое действие можно выполнить командой из терминала, но далеко не любое действие можно выполнить через окружения пользователя.

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

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

Список команд в данной статье не является полным списком команд Linux. Во-первых, команд слишком много, чтобы перечислять их все, во-вторых, новичкам они не нужны, а профессионалы уже помнят их наизусть. Однако, не стоит расстраиваться, если у вас не получается запомнить команды — запоминание приходит с практикой. Чем чаще вы пользуетесь теми или иными командами, тем скорее вы их запомните.

Синтаксис

Пользоваться утилитой весьма просто. Она понятна даже для новичка, который имеет базовые основы программирования. Чтобы запустить команду, потребуется в специальной строке ввести «top». Представленная вам форма не будет иметь опций, присутствует образ результата, который динамически изменяется через определенный промежуток времени.

Синтаксис команды «top» не отличается сложностью.

top (ОПЦИЯ) (АРГУМЕНТ)

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

  • k — завершение процесса, посылается сигнал SIGTERM, через команду kill.
  • t — включение и выключение суммарных данных.
  • n — ограничить число процессов, которые показываются на экране.
  • z — клавиша переключает режимы отображения. Цветной — черно-белый.
  • r — клавиша позволяет редактировать приоритет процессов. Для этих целей используется команда «renice».
  • P — сортировка по столбцу «%CPU» (загруженность процессора)
  • u — сортировка по столбцу «USER» (имя пользователя).
  • M — сортировка  по столбцу %MEM (оперативная память).
  • Space (пробел) — обновить данные на экране.
  • q — выйти из top.
Читайте также:  На какую тему создать сайт: пошаговое руководство для начинающих

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

Необходимо отметить, что данная команда выводит на экран монитора лишь краткие данные о самой системе и перечень процессов, которые обрабатываются с помощью ядра в ОС «Линукс». Запустив утилиту, вы сможете и изучить полезные данные о процессах.

Особенности выводимых данных

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

Первая строка

Синтаксис

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

Рассмотрим их подробнее:

  1. total — Общее количество задач.
  2. running — данный показатель показывает количество процессов, которые запущены в настоящее время.
  3. sleepping — показывает  количество спящих (ждущих) процессов. То есть эти процессы выполняются, однако не являются активными. К ним можно отнести различные драйвера.
  4. stopped — остановленные процессы, как правило этот параметр равен 0.
  5. zombie — процесс, которые завис.

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

  • «us» — время работы ОС с пользовательскими процессами. Здесь отсутствует видимый приоритет планирования, установленный «по молчанию».
  • «sy» — время работы ОС с системными процессами (внутри ядра).
  • «ni» — время работы ОС с пользовательскими процессами. В данном случае был назначен приоритет. Для этого использовалась команда «nice».
  • «id» — промежуток времени, который был затрачен обработчиком при простое ядра.
  • «wa» — промежуток времени, затраченный на ожидание при остановке ввода/вывода процессов.
  • «hi» — время, которое ушло на обрабатывание аппаратного прерывания.
  • «si» — время, которое ушло на обрабатывание программного прерывания.
  • «st» — промежуток времени, затраченный на ожидание ответа от физического процессора.

Далее в открытом окне после введения команды «top» представлено еще две строки. Здесь прописана информация о количестве использованной оперативной памяти и свопа.

Внизу представлен список запущенных процессов. Согласно установкам «по умолчанию», на экране отображается следующая информация:

  • Идентификатор процесса (PID).
  • Имя пользователя, который запустил определенную задачу (USER).
  • Приоритеты, прописанные согласно расписанию (PR). Если в этой рубрике будет присутствовать запись «rt», такая информация указывает на запуск задачи в режиме реального времени.
  • Определение задачи nice (NI). Негативные показатели указывают на высокий приоритет, а положительные значения – на низкую значимость.
  • Количество затраченной виртуальной памяти при выполнении определенной задачи (VIRT). Здесь указываются кодировки, информация о задаче и совместной библиотеке. Также отображается информация о страницах, перенесенных в рубрику подкачки, и о размеченных страницах, не эксплуатируемых системой.
  • Количество применяемой виртуальной памяти (RES). Это своеобразная физическая память, которая не используется в разделе подкачки, но ее расходует запущенная задача в данный момент.
  • Количество используемой совместной памяти (SHR). Такими ресурсами могут пользоваться сторонние процессы.
Читайте также:  Как установить публичную версию iOS 13 прямо сейчас

Завершить процесс в Linux – команды kill и killall

Завершить процесс в операционной системе Linux, зная его PID, можно командой kill. Стоит знать и понимать: команда kill предназначена для посылки сигнала процессу. По умолчанию, если мы не указываем какой сигнал посылать, посылается сигнал SIGTERM (от слова termination — завершение). SIGTERM указывает процессу на то, что необходимо завершиться. Каждый сигнал имеет свой номер. SIGTERM имеет номер 15. Список всех сигналов (и их номеров), которые может послать команда kill, можно вывести, выполнив kill -l. Чтобы послать сигнал SIGKILL (он имеет номер 9) процессу 2811, выполните в командой строке:

kill -9 2811

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

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

killall chrome

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

killall -s 9 chrome

Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter

Расшифровка значений индикаторов команды top

Нагрузка на процессор (CPU) это первые два значения:

Cpu(s): 31.7%us, 4.2%sy, 0.0%ni, 54.4%id, 9.2%wa, 0.2%hi, 0.4%si, 0.0%st

Кнопка «1» выведет нагрузку по каждому из процессоров.

PID — id процесса USER — пользователь запустивший процесс PR — приоритет процесса NI — nice процесса VIRT — количество памяти, которое может использовать программа RES — потребление физической памяти SHR — размер потенциальной памяти, которая может быть задействована совместно с другими программами

S — состояние процесса:

Читайте также:  Команда Chattr в Linux (атрибуты файлов)

S — завершен D — ожидание R — выполняется T — остановлен Z — зависCPU — использование ресурсов центральным процессором MEM — использование оперативной памяти сервера TIME+ — время работы процесса COMMAND — название процесса

Клавиша «С» отобразит в строке COMMAND ключи с которыми запущены процессы.

Клавиша «Q» — выйти из команды Top.

Как отзвать привелегии суперпользователя

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

sudo deluser ИМЯ_ПОЛЬЗОВАТЕЛЯ sudoУдаление пользователя из группы sudo

Как отзвать привелегии суперпользователя

Теперь можно убедиться, что пользователь более не может выполнять команды от имени root:

su testuser sudo whoamiПроверяем отсутствие прав суперпользователя

Как мы можем видеть — система не позволяет пользователю использовать команду sudo.

При удалении пользователя из группы sudo следует быть внимательным, чтобы не удалить единственного администратора из системы.

Как отзвать привелегии суперпользователя

18 764Rate this item: Rating↓ Ещё по теме

  • Как изменить пароль root в Ubuntu

    Здравствуй, дорогой читатель, если у тебя возникла необходимость поменять пароль суперпользователя в…

  • Linux выручит при отсутствии линейки

    Что делать, если нужно воспользоваться линейкой, но ее нету под рукой? Linux…

  • Слушаем Наше Радио в Linux

    Наслаждаемся хорошей музыкой и малым потреблением оперативной памяти. Для просулушивания интернет-радио есть…

  • Установка ADB в Ubuntu

    Описание процесса установки Android Device Bridge в Ubuntu В центре приложений Ubuntu…

Настройка sudo и прав доступа на выполнение различных команд

sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле /etc/sudoers . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду

По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo , о чём говорит строчка

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

Разрешение пользователю выполнять команду без ввода пароля

Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:

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

Создание синонимов (alias`ов)

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

и добавьте в конец файла строки