Logo CitForum CITForum на CD Форумы Газета Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

SHL(1)

НАЗВАНИЕ
shl - менеджер семейства shell'ов

СИНТАКСИС


	shl

ОПИСАНИЕ
Shl позволяет с одного терминала взаимодействовать с семейством shell'ов. Пользователь управляет членами семейства, или экземплярами, с помощью команд, описанных ниже.

Текущим называется экземпляр shell'а, который может производить ввод с клавиатуры. Другие экземпляры при попытке ввода с клавиатуры блокируются. Выводимая разными членами семейства информация может перемешиваться. Чтобы блокировать вывод экземпляра, который не является текущим, необходимо для этого члена семейства установить опцию loblk в stty.

Для передачи управления от члена семейства к менеджеру используется символ-переключатель swtch в stty (обычно CTRL+Z). Приглашением менеджера является >>>, что помогает отличить его от члена семейства.

Экземпляр shell'а связан с виртуальным терминалом (/dev/sxt/???). Виртуальным терминалом можно управлять так же, как и обычным, с помощью stty(1) и ioctl(2). Каждый экземпляр имеет собственный идентификатор группы процессов.

ОПРЕДЕЛЕНИЕ
Имя - это последовательность символов, ограниченная пробелом, табуляцией или переводом строки. Значащими являются только первые 8 символов. Имена (1) - (7) нельзя использовать при создании экземпляров: они зарезервированы менеджером как имена по умолчанию. Эти имена можно сокращать до одной цифры.

КОМАНДЫ
Менеджер выполняет следующие команды, которые можно сокращать до минимальной распознаваемости.

create [имя]
Создать экземпляр с указанным именем и сделать его текущим. Если аргумент не указан, экземпляр будет иметь имя (#), где # - последняя цифра подсоединенного к нему виртуального устройства. Переменная PS1 (приглашение экземпляра) получает значение имени экземпляра, за которым следует пробел. Можно создать не более 7 экземпляров.

block имя [имя ...]
Заблокировать вывод соответствующих экземпляров, когда они не являются текущими. Это эквивалентно установке для экземпляра опции loblk в stty.

delete имя [имя ...]
Удалить соответствующие экземпляры. Всем процессам, имеющим соответствующие идентификаторы группы, посылается сигнал освобождения линии SIGHUP [см. signal(2)].

help (или ?)
Справка по синтаксису команд shl.

layers [-l] [имя ...]
Для каждого имени вывести имя экземпляра и идентификатор группы процессов. Опция -l добавляет к выводу информацию в стиле ps(1). Если аргументы не указаны, выдается информация обо всех существующих экземплярах.

resume [имя]
Сделать экземпляр с указанным именем текущим. Если имя не указано, активируется последний из текущих экземпляров.

toggle
Активировать экземпляр, который был текущим перед последним из текущих.

unblock имя [имя ...]
Не блокировать вывод соответствующих экземпляров, когда они не являются текущими. Это эквивалентно сбросу для экземпляра опции loblk в stty.

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

имя
Сделать экземпляр с указанным именем текущим.

ФАЙЛЫ


	/dev/sxt/???      Виртуальные терминалы.

	$SHELL            Переменная, содержащая составное  имя

			  используемого shell'а  (по  умолчанию

			  /bin/sh).

СМ. ТАКЖЕ
sh(1), stty(1).
ioctl(2), signal(2) в Справочнике программиста. sxt(7) в Справочнике администратора.

СЮРПРИЗЫ
При переключении между экземплярами опережающий ввод обрабатывается не всегда так, как можно ожидать. До тех пор, пока не выполнится реальное переключение и пользователь не увидит соответствующее приглашение, весь опережающий ввод направляется текущему экземпляру. Не видя приглашения, нельзя гарантировать, что ввод попадет по назначению.

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

  1. Если команда запущена с помощью nohup(1) и стандартный ввод, вывод или протокол назначен на виртуальный терминал, например
    
    	nohup  who > /dev/sxt/010
    
    
  2. Если сигнал освобождения линии игнорируется shell'ом (например, после команды trap '' 1).

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

Если менеджер терминируется сигналом SIGKILL (kill -9), пользователь может оказаться в ситуации, когда для нормального продолжения работы необходимо выйти из системы и снова войти в нее. Кроме того, экземпляры будут продолжать выполняться до тех пор, пока они не будут явно терминированы или не произойдет перезагрузка системы. Пользователи, которые хотят завершить работу с менеджером, не должны использовать SIGKILL.

Новости мира IT:

Архив новостей

Последние комментарии:

Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2009 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...


Мы рекомендуем: мебель металлическая по минимальным ценам - ООО "МДС Металл-Голд".