slay

Уничтожение или изменение процесса по имени или идентификатору

Синтаксис:

slay [опции]... имя_процесса|идентификатор_процесса ...

Опции:

-номер_сигнала
Номер сигнала, определяющий сигнал для передачи процессам с соответствующим именем_процесса или идентификатором_процесса.
-C номер_ЦП
Установить привязку ЦП в соответствии со значением аргумента номер_ЦП, где первый ЦП имеет номер 0. Эта опция может быть использована многократно. Для получения дополнительной информации см. раздел "Установка маски запуска" далее.
-f
Принудительно выполнить действие для всех процессов с одинаковым именем_процесса или идентификатором. Как правило, если указанное имя или идентификатор относятся к нескольким процессам, утилита slay запрашивает подтверждение.
-h
Передать сигнал SIGSTOP процессу с немедленной остановкой его выполнения.
-i
При использовании с опцией -C или -R устанавливет помимо маски запуска маску наследования. Для получения дополнительной информации см. раздел "Установка маски запуска" далее.
-m name|pid
Ограничить сопоставление только именем или только идентификатором процесса. По умолчанию slay выполняет сопоставление как по имени, так и по идентификатору процесса. Примеры:
По команде Сопоставление с процессом:
slay 1234 По идентификатору 1234 или имени 1234
slay -m pid 1234 По идентификатору 1234
slay -m name 1234 По имени 1234
-n имя_узла
Выполнить поиск указанных процессов на определенном удаленном узле имя_узла.
-P приоритет[f|r|o]
Установить приоритет процессов с указанным именем_процесса в соответствии со значением аргумента приоритет. Пользователи, не имеющие полномочий root, могут установить максимальный приоритет 63. Пользователь root может задавать приоритеты вплоть до 255. Для изменения диапазона привилегированных приоритетов используется опция -P procnto.

После значения приоритета может следовать опция f, r или o для изменения политики диспетчеризации на SCHED_FIFO, SCHED_RR или SCHED_OTHER соответственно.

Note: В настоящее время SCHED_OTHER соответствует SCHED_RR.

Если опция -P определена без опции -T, утилита slay устанавливает приоритет для всех потоков в указанном процессе или процессах.
-p
Вывести в стандартном потоке вывода идентификаторы процессов в виде десятичных чисел (один идентификатор процесса в каждой строке). Процессы не уничтожаются.
-q
Запрашивать подтверждение перед взаимодействием с процессом, даже если найден только один процесс с соответствующим именем или идентификатором (переопределяет опцию -f). Эта опция используется для просмотра другой информации о процессах, которую предоставляет утилита slay.
-Q
Уменьшить подробность отображения информации. Эту опцию рекомендуется использовать при вызове slay из программы на языке C.
-R процессорная_маска
Установить привязку ЦП к процессорной_маске. Эту опцию можно использовать многократно для установки масок, длина которых превышает 32 бита. Для получения дополнительной информации см. раздел "Установка маски запуска" далее.
-S
Не уничтожать процессы, для которых имеются дочерние процессы. Как правило, эта опция используется в командах интерпретатора, выполняющих завершение работы командных интерпретаторов на других устройствах. При установке этой опции утилита slay не уничтожает командные интерпретаторы, с запущенными процессами (например, редакторами). Если при этом используется опция -q, утилита slay запрашивает подтверждение принудительного уничтожения даже в том случае, если для указанных процессов имеются дочерние процессы.
-s имя_сигнала
Сигнал, который требуется передать. При установке этой опции сигнал sig инициируется для процессов с соответствующим именем_процесса или идентификатором.
-T идентификатор_потока
Применить действие к потоку с данным идентификатором. С помощью этой опции можно направить сигнал в конкретный поток или изменить приоритет потока или процессорной маски.
-t имя_tty
Выполнять сопоставление только тех процессов, имя (или идентификатор) которых соответствует значению аргумента имя_процесса (идентификатор_процесса) с управляющим терминалом имя_tty. Если имя_tty начинает не с символа (/), утилита slay предполагает, что оно начинается с префикса /dev/.
-u
Передать сигнал SIGCONT процессу. Если выполнение процесса было остановлено сигналом SIGSTOP, выполнение возобновляется с момента, в который оно было остановлено. Если сигнал SIGSTOP не был послан процессу, сигнал SIGCONT влияния не оказывает.
-v
Вывести расширенную информацию; показать сообщения о процессах, которым были переданы сигналы.
имя_процесса
Имя соответствующего процесса.
идентификатор_процесса
Идентификатор соответствующего процесса.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита slay используется для уничтожения или изменения процесса по имени или идентификатору. Имена процессов указываются без пути. Например, требуется уничтожить процесс с именем /bin/sleep. Для поиска и уничтожения процесса с помощью утилиты slay достаточно ввести в качестве имени процесса sleep.

Существует несколько форматов этой команды. Далее показан наиболее простой и распространенный формат:

slay имя_процесса|идентификатор_процесса

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


Note: Послать сигнал процессу может лишь владелец процесса или пользователь с полномочиями root.

Установка маски выполнения

В многоядерной системе можно использовать процессорную маску для определения процессора, на котором будет выполняться поток или процесс. Значение по умолчанию – "все 1" (т.е. все ЦП).


Note: Процессорную маску целесообразно использовать только на многопроцессорных системах.

Утилита slay используется для изменения процессорной маски, либо процессорной маски и маски наследования для уже выполняющихся потоков; для установки масок в новом процессе используется команда on. Обе команды одинаково интерпретируют опции -C и -R.

Для установки процессорной маски длиной более 32 битов можно использовать несколько опций -R. Первая опция -R задает биты от 0 до 31, вторая – от 32 до 63 и т.д.

Если опции -C и -R используются совместно или указываются в нескольких экземплярах, то полученная маска является результатом побитовой операции ИЛИ для всех опций -C и -R. Например, slay -R 0x1 является эквивалентом slay -C 0, а slay -R 0x1 -C 3 – эквивалентом slay -C 0 -C 3.

Использование опции -R или -C без -T влияет на все потоки в указанном процессе или процессах.

При использовании опции -R или -C утилита slay изменяет процессорную маску для указанных потоков или процессов. Если также определена опция -i, утилита slay устанавливает для маски наследования и для процессорной маски одинаковые значения.


Note:
  • Если полученная процессорная маска определяет по крайней мере один физически имеющийся ЦП, эта процессорная маска принимается, а все биты, соответствующие физически отсутствующим ЦП, игнорируются. Если полученная процессорная маска не определяет физически имеющихся ЦП, возникает ошибка.
  • При изменении процессорной маски для процесса подмножество используемых процессоров блокированных потоков изменяется только после разблокирования потоков (либо вообще не изменяется, если потоки остаются блокированными).

Для получения дополнительной информации о процессорных масках см. главу «Многопроцессорная обработка» документа «Описание применения. Часть 1. Системная архитектура» КПДА.10964-01 и главу «Разработка многоядерных систем» документа «Руководство системного программиста (администратора)» КПДА.10964-01.

Примеры:

Уничтожить процесс spooler в узле peterv:

slay -n peterv spooler

От имени пользователя root изменить приоритет процесса my_test на 20:

slay -P 20 my_test

Возвращаемое значение:

0
Процессы, соответствующие указанным критериям, отсутствуют, возникла ошибка, либо число сопоставленных и обработанных процессов является целым кратным 256.
1-128
Число сопоставленных и обработанных процессов представлено в виде остатка от деления на 256 (например, статус 1 может означать 1 процесс, 257 процессов, 513 процессов и т. д.)
129-160
Если статус завершения был определен путем прямого порождения, он соответствует числу сопоставленных и обработанных процессов и представлен в виде остатка от деления на 256. Если утилита slay была запущена через командный интерпретатор, статус соответствует числу сопоставленных и обработанных процессов или указывает причину завершения работы slay в результате получения сигнала (для определения номера сигнала необходимо вычесть 128 из числа, обозначающего статус завершения).
161-255
Число сопоставленных и обработанных процессов представлено в виде остатка от деления на 256.

Предостережения:

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

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

kill, on, pidin, ps




Предыдущий раздел: Утилиты