Как остановить процесс linux

Сеть

ping # Пинг. Пропинговать ya.ru и вывести результат: ping ya.ru ;ifconfig # Утилита настройки сети. Примеры:- ifconfig # Показать параметры всех активных сетевых интерфейсов;- ifconfig -a # Показать все сетевые интерфейсы;- ifconfig eth0 up # Запустить сетевой интерфейс eth0;- ifconfig eth0 down # Отключить сетевой интерфейс eth0;- ifconfig eth0 hw ether 00:01:02:03:04:05 # Смена MAC адреса;- ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # Выставить интерфейсу eth0 IP-адрес и маску подсети;

ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 # Задать дополнительный IP адрес сетевому интерфейсу eth0;iwlist scan # просканировать эфир на предмет, доступности беспроводных точек доступа;iwconfig # Утилита настройки беспроводных сетевых интерфейсов.- iwconfig wlan0 # Показать конфигурацию беспроводного сетевого интерфейса wlan0;- iwconfig wlan0 mode ad-hoc # Указываем тип сети — ad-hoc;- iwconfig wlan0 channel 2 # Указываем частотный канал;- iwconfig wlan0 essid inet # Указываем имя сети. Подробнее о настройке раздачи интернета по wi-fi здесь: iwconfig ;route # Настройка маршрутов. Примеры:- route -n # Выводит на экран таблицу маршрутизации;- route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 # добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с IP-адресом 192.168.1.1 (для удаления меняем add на del);netstat # Текущие сетевые соединения. Пример:

— netstat -tup # Отобразить активные сетевые соединения:  ;

netstat -an | grep LISTEN # Показывает список всех открытых портов;- netstat -anp -udp -tcp | grep LISTEN # Посмотреть список приложений, которые открывают порты;ethtool # Информация о текущем режиме сетевого соединения и поддерживаемых. Примеры:

— ethtool eth0 отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения;- ethtool -s eth0 speed 100 duplex full autoneg off # Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение;tcpdump # Утилита сканирования сетевого трафика. Пример: tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80;iptables # Утилита настройки файервола;ssh # Подключение к удаленному компьютеру по ssh. Пример: ssh 10.10.10.4 . Подробнее: ssh ;wget # Утилита закачки. wget -c http://www.example.com/file.iso загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии;

whois # Узнать информацию о домене, пример: whois linux-bash.ru ;

Top

Эта утилита сообщает пользователю обо всех запущенных процессах на машине Linux.

Нажмите «q» на клавиатуре, чтобы выйти из экрана процесса.

Терминология следующая:

Поле Описание Пример 1 Пример 2
PID Идентификатор процесса каждой задачи 1525 961
Пользователь Имя пользователя владельца задачи Главная Корень
PR Приоритет может быть 20 (высший) или -20 (низший) 20 20
NI Хорошая ценность задачи
Уважаемый Используемая виртуальная память (КБ) 1775 75972
ВИЭ Используемая физическая память (КБ) 100 51
SHR Используемая общая память (КБ) 28 7952
Status
There are five types:
          ‘D’ = uninterruptible sleep
S           ‘R’ = running S R
          ‘S’ = sleeping
          ‘T’ = traced or stopped
          ‘Z’ = zombie
%CPU % of CPU time 1.7 1.0
%MEM Physical memory used 10 5.1
TIME+ Total CPU time 5:05.34 2:23.42
Command Command name Photoshop.exe Xorg

CDROM

<box 100% round left |>
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force — clean a rewritable cdrommkisofs /dev/cdrom > cd.iso — create an iso image of cdrom on diskmkisofs /dev/cdrom | gzip > cd_iso.gz — create a compressed iso image of cdrom on diskmkisofs -J -allow-leading-dots -R -V «Label CD» -iso-level 4 -o ./cd.iso data_cd — create an iso image of a directorycdrecord -v dev=/dev/cdrom cd.iso — burn an ISO imagegzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom — burn a compressed ISO imagemount -o loop cd.iso /mnt/iso — mount an ISO imagecd-paranoia -B — rip audio tracks from a CD to wav filescd-paranoia – «-3» — rip first three audio tracks from a CD to wav filescdrecord –scanbus — scan bus to identify the channel scsi

</box>

chmod

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

Можно представить настройки прав как последовательность бит. Именно так их представляет операционная система. Вот как это работает.

1
2
3
4
5

 
rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx — — = 111 000 000
 

и так далее…

1
2
3
4
5
6
7
8
9
10

 
rwx = 111 в двоичной нотации = 7 в восьмеричной и десятичной
rw- = 110 в двоичной нотации = 6 в восьмеричной и десятичной
r— = 101 в двоичной нотации = 5 в восьмеричной и десятичной
r— = 100 в двоичной нотации = 4 в восьмеричной и десятичной
-wx = 011 в двоичной нотации = 3 в восьмеричной и десятичной
-w- = 010 в двоичной нотации = 2 в восьмеричной и десятичной
—x = 001 в двоичной нотации = 1 в восьмеричной и десятичной
— = 000 в двоичной нотации = 0 в восьмеричной и десятичной
 

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

1
2
3

 
$ chmod 600 some_file
 

Рассмотрим наиболее применимые разрешения доступа для файлов. Те, что начинаются с цифры 7 используются для программ (они разрешают выполнение),  а остальные для других видов файлов.

  • 777 — — отсутствуют любые ограничения, каждый может выполнять с файлом любые действия. Обычно это нежелательный вариант.
  • 755 — — владелец имеет полный доступ, все остальные могут только читать и выполнять файл. Такие права устанавливаются на программы, используемые всеми пользователями.
  • 700 — — только владелец имеет полный доступ к файлу. Никто другой не имеет никакого доступа к файлу. Это разрешение используется для программ, которые используются только владельцем и должны быть недоступны остальным пользователям.
  • 666 — —все пользователи имеют права на чтение и запись файла.
  • 644 — —владелец имеет разрешения чтения и записи файла. Все остальные пользователи могут лишь читать файл. Используется для файлов с данными, к которым нужно открыть доступ на чтение для всех пользователей, но изменять данные может только владелец.
  • 600 — —только владелец может читать и записывать файл. Никто другой не имеет доступа к файлу. Используется для частных файлов.

Управление содержимым файлов

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

Использование:.

Как только вы окажетесь внутрисеанс, вы можете выйти, нажав.

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

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

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

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

Вы можете открывать несколько файлов и перемещаться по ним с помощью(перейти к следующему файлу) и(перейти к предыдущему).

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

На мой взгляд, его лучший вариант использования — это вызов свариант. Он открывает файл в конце и следит за изменениями файла. Каждый раз, когда в файле появляется новое содержимое, оно печатается в окне. Это отлично подходит для просмотра файлов журналов, например:

Для выхода нажмите.

Вы можете распечатать последние 10 строк файла:

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

может сделать гораздо больше, и, как всегда, мой совет — проверить.

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

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

Вы можете распечатать содержимое нескольких файлов:

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

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

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

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

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

средстваколичество слов. Вот наиболее частое использование:

  • подсчитывать строки
  • подсчитывать слова
  • подсчитывать символы
  • подсчет символов с многобайтовой поддержкой (т.е. смайлики считаются как 1, а не как несколько символов)

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

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

Давайте узнаем это на примере.

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

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

Найдите каталоги под текущим деревом, соответствующие имени «src»:

Использоватьдля поиска только файлов, илидля поиска только символьных ссылок.

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

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

Найдите каталоги в текущем дереве, соответствующие имени «node_modules» или «public»:

Вы также можете исключить путь, используя:

Вы можете искать файлы, содержащие более 100 символов (байтов):

Искать файлы размером более 100 КБ, но меньше 1 МБ:

Искать файлы, отредактированные более 3 дней назад

Искать файлы, отредактированные за последние 24 часа

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

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

обратите внимание на прекращение.заполняется именем файла во время выполнения. Скачать мою бесплатнуюСправочник по командам Linux

Скачать мою бесплатнуюСправочник по командам Linux

Как использовать команду pkill

Синтаксис команды pkill следующий:

pkill  <PATTERN>

Соответствие <PATTERN> указывается с использованием расширенных регулярных выражений.

При вызове без какой-либо опции pkill отправляет сигнал 15( TERM) в PID всех запущенных программ, которые соответствуют данному имени. Например, чтобы корректно остановить все процессы Firefox, вы должны выполнить:

pkill -9 firefox

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

Чтобы отправить другой сигнал согласованным процессам, вызовите pkillкоманду с параметром –signal, за которым следует числовое или символическое имя сигнала. Другой способ отправки сигнала – запуск, pkill за которым следует имя или номер сигнала с префиксом дефиса ( -).

Используйте команду kill -l для получения списка всех доступных сигналов.

Наиболее часто используемые сигналы:

  • 1(HUP): перезагрузить процесс.
  • 9(KILL): убить процесс.
  • 15(TERM): изящно остановить процесс.

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

  • используя число (например, -1)
  • с префиксом «SIG» (например, -SIGHUP)
  • без префикса «SIG» (например, -HUP).

Например, чтобы перезагрузить процессы Nginx, вы должны запустить:

pkill -HUP nginx

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

1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent

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

pkill '^ssh$'

Символ caret ( ^) соответствует началу строки и доллар $ в конце.

По умолчанию pkill совпадает только с именем процесса. Когда используется опция -f, команда сопоставляется с полными списками аргументов. Если команда содержит пробелы, заключите всю команду в кавычки:

pkill -9 -f "ping 8.8.8.8"

Используйте опцию -u, чтобы сказать pkill соответствовать процессам, запущенным данным пользователем:

pkill -u mark

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

pkill -u mark,danny

Вы также можете комбинировать параметры и шаблоны поиска. Например, чтобы послать сигнал KILL всем процессам, которые запускаются под пользователем «mark» и содержат «gnome» в своих именах, вы должны ввести:

pkill -9 -u mark gnome

Чтобы отобразить только самые последние (самые старые) или самые последние (самые новые) запущенные процессы, используйте параметр -n (для самых новых) или -o (для самых старых).

Например, чтобы убить последний созданный экран :

pkill -9 -n screen

Microsoft Windows networks(SAMBA)

<box 100% round left|>
nbtscan ip_addrnmblookup -A ip_addr — разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.smbclient -L ip_addr/hostname — отобразить ресурсы, предоставленные в общий доступ на windows-машинеsmbget -Rr smb://ip_addr/share — подобно wget может получить файлы с windows-машин через smb-протоколmount -t smbfs -o username=user,password=pass //winclient/share /mnt/share — смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему

</box>

Как использовать команду pkill

Синтаксис команды следующий:

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

При вызове без какой-либо опции отправляет сигнал ( ) идентификаторам PID всех запущенных программ, которые соответствуют заданному имени. Например, чтобы корректно остановить все процессы firefox, вы должны запустить:

Команда возвращает если хотя бы один запущенный процесс совпадает с запрошенным именем. В противном случае код выхода — . Это может быть полезно при написании сценариев оболочки.

Чтобы отправить другой сигнал согласованным процессам, вызовите команду с параметром , за которым следует числовое или символьное имя сигнала. Другой способ отправить сигнал — запустить за которым следует имя сигнала или номер с префиксом дефиса ( ).

Используйте команду чтобы список всех доступных сигналов.

Наиболее часто используемые сигналы:

  • ( ): перезагрузить процесс.
  • ( ): убить процесс.
  • ( ): корректно остановить процесс.

Сигналы можно указать тремя разными способами:

  • используя число (например, -1)
  • с префиксом «SIG» (например, -SIGHUP)
  • без префикса «SIG» (например, -HUP).

Например, чтобы перезагрузить процессы Nginx, вы должны запустить:

использует регулярные выражения для сопоставления имен процессов. Всегда рекомендуется использовать команду для печати согласованных процессов перед отправкой им сигналов. Например, чтобы перечислить все процессы, которые содержат «ssh» в своих именах:

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

Символ каретки ( ) соответствует началу строки и доллару в конце.

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

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

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

Вы также можете комбинировать параметры и шаблоны поиска. Например, чтобы отправить сигнал всем процессам, которые запускаются под пользователем «mark» и содержат в своих именах «gnome», вы должны ввести:

Чтобы отображать только самые последние (самые старые) или самые последние (самые новые) запущенные процессы, используйте параметр (для самых новых) или (для самых старых).

Например, чтобы убить последний созданный экран :

Параметр сигнала

Во-первых, это сигнал. Сигналы – это простые цифры, обозначающие имя. Команда Kill может выполнять разные задачи в зависимости от подаваемого вами сигнала. Пользователи могут использовать более 60 различных значений сигналов, каждый из которых выполняет отдельные конкретные задачи. Чтобы просмотреть все эти параметры, вы можете использовать следующую команду:

$ Kill -l

Как видите, всего доступно 64 варианта.

Хотя существует более 60 различных сигналов, ниже описаны два из наиболее распространенных.

  1. SIGKILL (9): Как следует из названия, эта команда полностью завершает процесс без сохранения данных программы. Эта команда используется только в крайнем случае.
  2. SIGTERM (15): генерирует сигнал завершения, который закрывает программу безопасным способом. Это также сигнал по умолчанию.

Сигналы могут быть дополнительно определены 3 различными способами, описанными ниже.

1. Мы можем указать сигнал соответствующей цифрой:

$ kill -9 PID

2. Мы можем указать сигнал по его имени:

$ kill -SIGKILL PID

3. Мы можем указать сигнал без SIG в названии.

$ kill -kill PID

Все эти команды выполняют одну и ту же задачу.

Синтаксис

Чтобы передать предварительно выбранный сигнал определенному процессу в Linux, рекомендуется воспользоваться специальной утилитой kill. Она имеет весьма простой синтаксис:

Здесь можно использовать любой сигнал, который представлен в вышеописанном списке. Если данный параметр не задать в команде, «по умолчанию» будет использован SIGTERM. Именно он практически моментально завершит выбранную вами программу.

К примеру, в операционной системе подключенный по ssh пользователь «ya». Нам необходимо завершить этот процесс, тем самым закрыть подключение по ssh с использованием утилиты kill. Первоначально требуется определить ее идентификатор с помощью команды «ps».

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

Как видно на скриншоте, pid который нам нужен 2590. Завершим подключение пользователя «ya» с помощью сигнала SIGTERM.

Бывают различные ситуации. В некоторых случаях после введения вышеописанной программы процесс продолжает висеть в ОС «Линукс». Проверить его наличие можно также с помощью утилиты «ps» (процесс ее запуска описан выше). В данном случае можно воспользоваться более действенным сигналом SIGKILL, где запрос идет непосредственно через ядро всей системы. Необходимо ввести – kill -KILL 20445.

После ведения такой команды рекомендуется снова запустить утилиту «ps». Если вы обнаружите, что процесс запущен от имени пользователя, которого завершали прцесс ( в нашем случае это ya), потребуется дополнительное использование утилиты «sudo».

Особенности завершения процесса с использованием команды «pkill»

Главная отличительная особенность данной утилиты – вместо идентификатора процесса требуется ввести имя программы. Синтаксис и поведение будет аналогичным.

Утилита «pkill» отсканирует директорию и самостоятельно найдет ID с аналогичным именем. Только после этого будет подан сигнал SIGTERM. Например, закроем программу mc.

Особенности завершения процесса с использованием команды «killall»

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

При использовании утилит важно понимать, что к постановке задач требуется отнестись максимально ответственно. Если сделать что-то не правильно, могут возникнуть сбои в работе ОС «Линукс»

Манипуляции с текстом

<box 100% round left |>
cat file_originale | > result.txt — общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новыйcat file_originale | » result.txt — общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет созданgrep Aug /var/log/messages — из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug»grep ^Aug /var/log/messages — из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug»grep /var/log/messages — из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие цифрыgrep Aug -R /var/log/* — отобрать и вывести на стандартное устройство вывода строки, содержащие «Augr», во всех файлах, находящихся в директории /var/log и нижеsed ‘s/stringa1/stringa2/g’ example.txt — в файле example.txt заменить «string1» на «string2», результат вывести на стандартное устройство вывода.sed ‘/^$/d’ example.txt — удалить пустые строки из файла example.txtsed ‘/ *#/d; /^$/d’ example.txt — удалить пустые строки и комментарии из файла example.txtecho ‘esempio’ | tr » » — преобразовать символы из нижнего регистра в верхнийsed -e ‘1d’ result.txt — удалить первую строку из файла example.txtsed -n ‘/string1/p’ — отобразить только строки содержашие «string1»sed -e ‘s/ *$//’ example.txt — удалить пустые символы в в конце каждой строкиsed -e ‘s/string1//g’ example.txt — удалить строку «string1» из текста не изменяя всего остальногоsed -n ‘1,8p;5q’ example.txt — взять из файла с первой по восьмую строки и из них вывести первые пятьs -n ‘5p;5q’ example.txt — вывести пятую строкуsed -e ‘s/0*/0/g’ example.txt — заменить последовательность из любого количества нулей одним нулёмcat -n file1 — пронумеровать строки при выводе содержимого файлаcat example.txt | awk ‘NR%2==1’ — при выводе содержимого файла, не выводить чётные строки файлаecho a b c | awk ‘{print $1}’ — вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляцииecho a b c | awk ‘{print $1,$3}’ — вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляцииpaste file1 file2 — объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-mpaste -d ‘+’ file1 file2 — объединить содержимое file1 и file2 в виде таблицы с разделителем «+»sort file1 file2 — отсортировать содержимое двух файловsort file1 file2 | uniq — отсортировать содержимое двух файлов, не отображая повторовsort file1 file2 | uniq -u — отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)sort file1 file2 | uniq -d — отсортировать содержимое двух файлов, отображая только повторяющиеся строкиcomm -1 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file1’comm -2 file1 file2 — сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file2’comm -3 file1 file2 — сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах

</box>

Основные сигналы

Следующие сигналы являются частью стандарта POSIX. Каждый сигнал макрос, определенный в Файл заголовка системы. Они, как правило, сокращенны, без их SIG- префикса; например SIGHUP часто называют просто как HUP.

SIGTERM –  Этот сигнал запрашивает остановку процесса который работает. Этот сигнал может быть проигнорирован.Процессу дается время, чтобы хорошо выключился. Когда программа хорошо выключается, это означает, что ей дано время, чтобы спасти его прогресс и освободить ресурсы. Другими словами, он не «forced» прекращение работы процесса.

SIGKILL –  сигнал SIGKILL заставляет процесс прекратить выполнение своей работы немедленно. Программа не может игнорировать этот сигнал. Несохраненный прогресс будет потерян.

Синтаксис для  «kill».

Синтаксис команды такой:

или

Сигнал по умолчанию (если он не указан) является SIGTERM. Когда данный сигнал не помогает и не работает, вы можете использовать следующие опции для «kill» чтобы завершить процесс принудительно:

Или

где «-9» — это флаг относится к сигналу SIGKILL.

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

А если знаете конкретное приложение (например apache), то можно отсеять ненужное и вывести все процессы по данной службе:

И это отобразит все запущенные приложения вместе с его PID-ом(ами).

Например, чтобы убить приложение, я выполните следующую команду:

Стоит также отметить, что вы можете использовать несколько процессов одновременно чтобы их можно было » убить»:

Перезагурзить конфигурационные файлы или перезапуск утилит:

Особенно полезными сигналы включают HUP, INT, kill, STOP, CONT, и 0.

Варианты таковы:

-s signal_nameСимволическое имя сигнала, задающее сигнал для отправки сигнала не по умолчанию.

-l Если операнд не указан,  то показать имена сигналов; В противном случае, написать название сигнала, соответствующего exit_status.

-signal_nameСимволическое имя сигнала, задающее сигнал для отправки в TERM по умолчанию.

-signal_numberНеотрицательное десятичное целое, задающее сигнал для отправки в TERM по умолчанию.

Следующие PID-ы, имеют особое значение:-1 Если суперпользователь, то транслирует сигнал всем процессам;  в противном случае вещает на все процессыbelong-ing для пользователя.

Некоторые из наиболее часто используемых сигналов:

PKill

Команда «pkill» позволяет использовать расширенные шаблоны регулярных выражений и других критериев соответствия. Вместо того чтобы использовать PID, теперь вы можете убить приложение, введя имя процесса. Например, чтобы убитьбраузер Firefox , просто запустите команду:

Так как он соответствует шаблону регулярного выражения, вы также можете ввести часть имени процесса, например:

Чтобы избежать «убийства» неправильных процессов, вы можете сделать «pgrep -l » в список подходящих процессов.

Pkill команда имеет гораздо больше вариантов, например если указать опцию «-u», то она позволит вам указать имя пользователя или ID. В этом примере мы посылаем сигнал TERM всем процессам, принадлежащие пользователю ‘nobody’:

Killall

Killall использует имя процесса, а вместо PID, и он «убивает» все экземпляры процесса с тем же именем. Например, если вы используете несколько экземпляров браузера Firefox, вы можете убить их всех с помощью команды:

В Gnome, вы можете перезапустить Nautilus с помощью команды:

xkill

Xkill является графическим способом «убить» приложение. При вводе «XKill» в терминале, курсор мыши будет немедленно стать «крест». Все, что вам нужно сделать, это нажать «крест» на провинившихся приложение и он убьет приложение мгновенно. Если вы заинтересованы, вы можете добавить сочетание клавиш для включения функции XKill.

Kill Command in Linux

21 Января 2020
&vert;

Терминал

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

команда

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

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

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

Синтаксис команды принимает следующую форму:

Команда отправляет сигнал указанным процессам или группам процессов, заставляя их действовать в соответствии с сигналом. Если сигнал не указан, по умолчанию используется значение (-TERM).

Наиболее часто используемые сигналы:

  • () — Перезагрузить процесс.
  • () — убить процесс.
  • () — Изящно остановить процесс.

   Чтобы получить список всех доступных сигналов, вызовите команду с опцией:

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

  1. Используя номер (например, или ).
  2. Используя префикс «SIG» (например, или ).
  3. Без префикса «SIG» (например, или ).

   Следующие команды эквивалентны друг другу:

   PID, предоставленные команде, могут быть одним из следующих:

  • Если больше нуля, сигнал отправляется процессу с идентификатором, равным .
  • Если равно нулю, сигнал отправляется всем процессам в текущей группе процессов. Другими словами, сигнал отправляется всем процессам, принадлежащим GID оболочки, которая вызвала команду. Используйте команду для просмотра идентификаторов группы процессов (GID).
  • Если равно , сигнал отправляется всем процессам с тем же UID, что и пользователь, вызывающий команду. Если вызывающий пользователь является пользователем root, сигнал отправляется всем процессам, кроме init и самого процесса.
  • Если меньше чем , сигнал отправляется всем процессам в группе процессов eq с GID, равным абсолютному значению .

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

Завершение процессов с помощью команды

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

Допустим, браузер Firefox перестал отвечать на запросы, и вам нужно завершить процесс Firefox. Чтобы найти PID браузера, используйте команду:

   Команда напечатает идентификаторы всех процессов Firefox:

Как только вы узнаете номера процессов, вы можете прекратить их все, отправив сигнал:

   Вместо того, чтобы искать PID и затем завершать процессы, вы можете объединить вышеуказанные команды в одну:

Перезагрузка процессов с помощью команды

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

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

Используйте команду, чтобы найти главный PID:

   Как только вы найдете главный PID, перезагрузите настройки Nginx, набрав:

   Приведенная выше команда должна выполняться от имени пользователя root или пользователя с привилегиями sudo .

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

локальный (привязаны к процессору и возможны только в пределах компьютера);

— каналы

  1. pipe (они же конвейеры, так же неименованные каналы), о них я много рассказывал в прошлом посте, примером можно привести: команда1 | команда2. По сути, pipe использует stdin, stdout и stderr.
  2. Именованные каналы (FIFO: First In First Out). Данный вид канала создаётся с помощью mknod или mkfifo, и два различных процесса могут обратиться к нему по имени. Пример работы с fifo:

в первом терминале (создаем именованный канал в виде файла pipe и из канала направляем данные с помощью конвейера в архиватор):

# mkfifo pipe
# ls -l
total 0
prw-r--r-- 1 root root 0 Nov  9 19:41 pipe
# gzip -9 -c < pipe > out

во втором терминале (отправляем в именованный канал данные):

# cat /path/to/file > pipe

в результате это приведет к сжатию передаваемых данных gzip-ом

— сигналы

сигнал — это асинхронное уведомление процесса о каком-либо событии. Когда сигнал послан процессу, операционная система прерывает выполнение процесса. Если процесс установил собственный обработчик сигнала, операционная система запускает этот обработчик, передав ему информацию о сигнале. Если процесс не установил обработчик, то выполняется обработчик по умолчанию.
Все сигналы начинаются на «SIG…» и имеют числовые соответствия, определяемые в заголовочном файле signal.h. Числовые значения сигналов могут меняться от системы к системе, хотя основная их часть имеет в разных системах одни и те же значения. Утилита kill позволяет задавать сигнал как числом, так и символьным обозначением.
Сигналы можно послать следующими способами:

— разделяемая память

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

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

— очереди сообщений

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: