slay
Уничтожение
или изменение процесса по имени или идентификатору (QNX
Neutrino)
Синтаксис:
slay [опции]...
имя_процесса|идентификатор_процесса ...
Поддерживаемые платформы:
Neutrino
Опции:
- номер_сигнала
Номер сигнала,
определяющий сигнал для передачи процессам с соответствующим именем_процесса
или идентификатором_процесса.
-C номер_ЦП
Установить привязку ЦП в соответствии со значением
аргумента номер_ЦП, где первый ЦП
имеет номер 0. Эта опция может быть использована многократно.
Для получения дополнительной информации см. раздел "Установка
маски запуска" далее.
Примечание.
Опция -C добавлена в QNX Neutrino Core
OS 6.3.2.
-f
Принудительно выполнить действие для всех процессов с
одинаковым именем_процесса или
идентификатором. Как правило, если указанное имя или
идентификатор относятся к нескольким процессам, утилита slay запрашивает подтверждение.
-h
Передать
сигнал SIGSTOP процессу с немедленной остановкой его выполнения.
-i
При использовании с опцией -C или -R устанавливет помимо маски
запуска маску наследования. Для получения дополнительной
информации см. раздел "Установка маски запуска" далее.
Примечание. Опция -i добавлена в QNX
Neutrino Core OS 6.3.2.
-m name|pid
Ограничить сопоставление только именем или только
идентификатором процесса. По умолчанию slay выполняет сопоставление как по имени,
так и по идентификатору процесса. Пример.
По команде
|
Сопоставление
процесса с:
|
slay
1234
|
Идентификатор 1234
или имя 1234
|
slay
-m pid 1234
|
Идентификатор 1234
|
slay
-m name 1234
|
Имя 1234
|
-n имя_узла
Выполнить
поиск указанных процессов на определенном удаленном узле имя_узла.
Примечание.
Опция -n добавлена в QNX Neutrino Core
OS 6.3.2.
-P приоритет[f|r|o]
Установить приоритет процессов с указанным именем_процесса в соответствии
со значением аргумента приоритет. Пользователи,
не имеющие полномочий root, могут
установить максимальный приоритет 63. Пользователь root может задавать приоритеты вплоть до
255. Для изменения диапазона привилегированных приоритетов
используется опция -P procnto.
После
значения приоритета может следовать опция f, r или o для изменения политики
диспетчеризации на SCHED_FIFO, SCHED_RR или SCHED_OTHER
соответственно.
Примечание.
В настоящее время SCHED_OTHER соответствует SCHED_RR.
Если опция -P определена без опции -T, утилита slay устанавливает приоритет для всех
потоков в указанном процессе или процессах.
-p
Вывести в стандартном потоке вывода идентификаторы
процессов в виде десятичных чисел (один идентификатор процесса
в каждой строке). Процессы не уничтожаются.
-q
Запрашивать подтверждение перед взаимодействием с
процессом, даже если найден только один процесс с
соответствующим именем или идентификатором (переопределяет
опцию -f). Эта опция
используется для просмотра другой информации о процессах,
которую предоставляет утилита slay.
-Q
Уменьшить
подробность отображения информации. Эту опцию рекомендуется
использовать при вызове slay из программы на
языке C.
-R процессорная_маска
Установить привязку ЦП к процессорной_маске. Эту опцию
можно использовать многократно для установки масок, длина
которых превышает 32 бита. Для получения дополнительной
информации см. раздел "Установка маски запуска" далее.
Примечание.
Опция -R добавлена в QNX Neutrino Core
OS 6.3.2.
-S
Не уничтожать процессы, для которых имеются дочерние
процессы. Как правило, эта опция используется в командах
интерпретатора, выполняющих завершение работы командных
интерпретаторов на других устройствах. При установке этой
опции утилита slay не уничтожает
командные интерпретаторы, с запущенными процессами (например,
редакторами). Если при этом используется опция - q, утилита slay запрашивает подтверждение
принудительного уничтожения даже в том случае, если для
указанных процессов имеются дочерние процессы.
-s имя_сигнала
Сигнал, который требуется передать. При установке
этой опции сигнал sig инициируется для процессов с
соответствующим именем_процесса или идентификатором.
-T идентификатор_потока
Применить действие к потоку с данным идентификатором.
С помощью этой опции можно направить сигнал в конкретный поток
или изменить приоритет потока или процессорной маски.
Примечание.
Опция -T добавлена в QNX Neutrino Core
OS 6.3.2.
-t имя_tty
Выполнять сопоставление только тех процессов, имя
(или идентификатор) которых соответствует значению аргумента имя_процесса (идентификатор_процесса) с управляющим
терминалом имя_tty. Если имя_tty начинает не с
символа (/), утилита slay предполагает, что оно начинается с
префикса /dev/.
-u
Передать сигнал SIGCONT процессу. Если выполнение
процесса было остановлено сигналом SIGSTOP, выполнение
возобновляется с момента, в который оно было остановлено. Если
сигнал SIGSTOP не был послан процессу, сигнал SIGCONT влияния
не оказывает.
-v
Вывести
расширенную информацию; показать сообщения о процессах, которым
были переданы сигналы.
имя_процесса
Имя
соответствующего процесса.
идентификатор_процесса
Идентификатор соответствующего процесса.
Описание:
Утилита slay используется для уничтожения или
изменения процесса по имени или идентификатору. Имена
процессов указываются без пути. Например, требуется уничтожить
процесс с именем /bin/sleep. Для поиска и
уничтожения процесса с помощью утилиты slay достаточно ввести в качестве имени
процесса sleep.
Существует
несколько форматов этой команды. Далее показан наиболее
простой и распространенный формат:
slay имя_процесса|идентификатор_процесса
Эта команда выполняет поиск процесса с указанным
именем или идентификатором. Если найден только один процесс,
ему передается сигнал SIGTERM. Если указанное имя или
идентификатор относится к нескольким процессам, команда
запрашивает подтверждение с просьбой ответить "да/нет" для
каждого процесса. Если в такой форме представлены все
процессы, в целях упрощения выбора также отображается имя
процесса, идентификатор_процесса и номера группы/члена
терминального устройства ввода-вывода.
Примечание.
Послать сигнал процессу может лишь владелец процесса или
пользователь с полномочиями root.
Установка маски выполнения
В
многоядерной системе можно использовать процессорную маску для
определения процессора, на котором будет выполняться поток или
процесс. Значение по умолчанию – "все 1" (т.е. все ЦП).
Примечание.
Процессорную маску целесообразно использовать только на
многопроцессорных системах.
Утилита slay используется для изменения
процессорной маски, либо процессорной маски и маски
наследования для уже выполняющихся потоков; для установки
масок в новом процессе используется команда on. Обе команды одинаково интерпретируют
опции -C и -R.
Для
установки процессорной маски длиной более 32 битов можно
использовать несколько опций -R. Первая опция -R задает биты от 0 до 31,
вторая – от 32 до 63 и т.д.
Если опции -C и -R используются совместно или
указываются в нескольких экземплярах, то полученная маска
является результатом побитовой операции ИЛИ для всех опций -C и -R. Например, slay -R 0x1 является эквивалентом slay -C0, а slay -R 0x1 -C3 – эквивалентом
slay -C0 -C3.
Использование
опции -R или -C без -T влияет на все потоки в
указанном процессе или процессах.
При
использовании опции -R или -C утилита slay изменяет процессорную маску для
указанных потоков или процессов. Если также определена опция -i, утилита slay устанавливает для маски наследования и
для процессорной маски одинаковые значения.
Примечание.
-
Если полученная
процессорная маска определяет по крайней мере один
физически имеющийся ЦП, эта процессорная маска
принимается, а все биты, соответствующие физически
отсутствующим ЦП, игнорируются. Если полученная
процессорная маска не определяет физически имеющихся ЦП,
возникает ошибка.
-
При изменении
процессорной маски для процесса подмножество используемых
процессоров блокированных потоков изменяется только после
разблокирования потоков (либо вообще не изменяется, если
потоки остаются блокированными).
Для получения дополнительной информации о
процессорных масках см. главы Multicore Processing
("Многопроцессорная обработка") в руководстве по системной
архитектуре и Developing Multicore Systems ("Разработка
многоядерных систем") в разделе «Руководства системного
программиста (администратора)» КПДА.10964-01 32, посвященном
многопроцессорной обработке.
Примеры:
Уничтожить
процесс 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 в любых ситуациях, когда требуется
знать точный статус завершения, поскольку при некоторых
обстоятельствах возможны разные трактовки статуса.