Выполнение команды на другом узле или tty
on [-C номер_ЦП] [-d] [-h] [-n|f имя_узла] [-P] [-p приоритет[политика]] [-R процессорная_маска] [-s] [-t терминал_ввода_вывода] [-u пользователь | -l имя_пользователя] [-W количество_секунд] [-w устройство] [-Xкоманда_диспетчеризации] [команда [аргументы]]
0
. Эту опцию можно использовать многократно. Для получения дополнительной информации см. "Установка процессорной маски" далее.LOGNAME
, HOME
и SHELL
, устанавливает для утилиты umask значение 022
и осуществляет переход в каталог, указанный для пользователя в базе данных паролей.SPAWN_PADDR64_SAFE
для подтверждения безопасности 64-разрядной адресации для выполнения процесса либо отсутствия значимости местоположения физической памяти для процесса.0
до 255
. Приоритет с номером 0
используется для незанятого потока. По умолчанию приоритеты с номерами более 64
относятся к категории привилегированных и могут использоваться только процессами с нулевым эффективным идентификатором пользователя (т.е. root
). Приоритеты от 1
до 63
доступны процессам с идентификатором пользователя root
и с идентификатором, отличным от root
. 32
бита. Для получения дополнительной информации см. раздел "Установка процессорной маски" далее.0
, 1
и 2
для команды, указанной в аргументе команда. команда выполняется в новом сеансе, в качестве управляющего терминала используется терминал_ввода_вывода (tty). Если значение терминал_ввода_вывода не содержит косой черты (/
), то в начало добавляется /dev/
./
), то в начало добавляется /dev/
. Опции -w и -W можно повторить в командной строке. Они обрабатывается в указанном порядке, до обработки других опций. |
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита on расширяет возможности создания процессов командным интерпретатором ( sh). Процесс можно запустить на удаленном узле, на другом управляющем терминале, в состоянии HELD для отладки или последующего синхронизированного запуска.
Если опция -d не указана, то сетевое подключение создается в качестве локального агента для удаленного порожденного процесса. По завершении работы порожденного процесса, родительский процесс должен выполнить функцию wait() в отношении созданного сетевого подключения, чтобы освободить порожденный процесс - "зомби". Если опция -d указана, команда отсоединяется от родительского процесса. Родительский процесс не в состоянии выполнить функцию wait() для порожденного процесса и не может управлять им при помощи сигналов.
По умолчанию команда выполняется в текущем сеансе. Опция -t начинает новый сеанс, что означает, что команда не получит SIGHUP
в случае завершения работы лидера текущего сеанса.
Команда on -t становится новым лидером сеанса на указанном терминале ввода-вывода, т.е. получает SIGHUP , генерируемый при завершении соединения на данном терминале ввода-вывода. Любые первоначально запущенные на этом терминале ввода-вывода процессы не получают SIGHUP , и это условие продолжает существовать даже после завершения работы процесса, который запущен утилитой on. По этой причине можно указывать только терминалы ввода-вывода, которые не используются в настоящее время. |
Установка процессорной маски
В многоядерной системе можно использовать процессорную маску для определения процессора, на котором будет выполняться поток или процесс. Значение по умолчанию – "все 1" (т.е. все ЦП).
Процессорную маску целесообразно использовать только на многопроцессорных системах. |
Утилиту on можно использовать для установки процессорной маски или маски наследования для нового процесса; для изменения масок уже запущенных потоков необходимо использовать утилиту slay. Обе команды одинаково интерпретируют опции -C и -R.
Для установки процессорной маски длиной более 32 битов можно использовать несколько опций -R. Первая опция -R задает биты от 0 до 31, вторая – от 32 до 63 и т.д.
Если опции -C и -R используются совместно или указываются в нескольких экземплярах, то полученная маска является результатом побитовой операции ИЛИ для всех опций -C и -R. Например, on -R 0x1 эквивалентно on -C 0, а on -R 0x1 -C 3 эквивалентно on -C 0 -C 3. Команда on устанавливает для процессорной маски и маски наследования процесса одинаковые значения.
Для получения дополнительной информации о процессорных масках см. главу «Многопроцессорная обработка» документа «Описание применения. Часть 1. Системная архитектура» КПДА.10964-01 и главу «Разработка многоядерных систем» документа «Руководство системного программиста (администратора)» КПДА.10964-01.
Выполнение утилиты login на консоли 2:
on -t con2 login
Выполнение утилиты who на узле 3:
on -n 3 who
Выполнение утилиты sort в качестве порожденного процесса без родительского на узле с именем peterv:
on -d -n peterv sort file.dat
Выполнение утилиты who на узле 7 с новым сеансом, стандартный ввод/вывод утилиты подключен к консоли 1 на узле 3:
on -t //3/dev/con1 -n7 who
Утилита on завершает работу со статусом завершения команды, указанной в аргументе команда.
Базовые подсистемы ЗОСРВ «Нейтрино»
Предыдущий раздел: Утилиты