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 в любых ситуациях, когда требуется знать точный статус завершения, поскольку при некоторых обстоятельствах возможны разные трактовки статуса.