Operating System
Восстановление заблокированного терминала
Одной из наиболее важной проблемой, с которой часто сталкиваются новые пользователи, является блокировка терминала. Блокировки терминалов могут возникнуть по различным причинам и результаты блокировок могут изменяться от кратковременных прерываний в работе до полной потери работы. Если возникает блокировка терминала, то приведенные ниже шаги позволяют возвратить терминал к работе с минимальными потерями времени.
1. Сначала необходимо подождать некоторое время. Так как вычислительная система становится более тяжелой в работе, то «время реакции системы» увеличивается. Во время периодов пиковой активности, терминал может принимать клавиатурный ввод без «повиновения» ему, выдавая выражение, которое было заблокировано терминалом, полностью. В данном случае необходимо подождать как минимум 60 секунд перед тем, как попытаться «воскресить» терминал.
2. Нажмите на ключи q, для того, чтобы возобновить передачу, если сигнал s (прекращение передачи), поступив-
Каждый фильтр, добавляемый в систему, набирается наряду с нажат по небрежности.
3. Если терминал не выдает ответа, то данный терминал должен быть проверен с целью выявления ошибок в аппаратурных средствах таких, как обрыв или отсоединение шнура электропитания, шнура клавиатуры или коммуникационного кабеля. Если все шнуры электропитания подсоединены и коммуникационный кабель плотно вставлен на том и другом конце (и остается неповрежденным в середине), то скорее всего возникли проблемы в эксплуатации программных средств.
4. Иногда внутренние программные средства терминала могут находиться в необычном состоянии. Данная ситуация часто может быть скорректирована путем выключения и включения терминала. Данные действия всегда приводят к положительным результатам на незаполненном экране и поэтому, если на экране терминала находится информация, которую необходимо сохранить, то пользователь должен записать данную информацию или сохранить данный шаг с целью выполнения его последним.
5. Если возникают ограничения по записи и терминал сам является источником всех данных проблем, то необходимо осуществить проверку программы, выполняющейся на терминале. Команда who, введенная с работающего терминала, будет сообщать пользователю о том, какой коммуникационный порт связывает каждого пользователя с терминалом, позволяя пользователю идентифицировать порт, к которому подсоединен заблокированный терминал.
Удобные в работе тестовые программы, выполняющие проверку связи с аппаратурными средствами, перераспределяют некоторые выходы из работающего терминала на заблокированный терминал. Если используется коммуникационный порт с именем tty6c, то приведенная ниже команда будет создавать некоторый вывод данных на экране заблокированного терминала.
Если на экран терминала будет выведено сообщение «разрешение отказано», то пользователь должен попытаться выдать с работающего терминала команду date еще один раз. Если и после этого отсутствует реакция системы, то пользователь должен начать восстановление заблокированного терминала сначала и выполнить проверку аппаратурных средств еще раз так, как это было описано выше.
Чтобы установить какие программы заблокированного терминала выполняются, необходимо описать имя порта в команде ps, используя для этого операнд -t. Если используется коммуникационный порт tty6c, то, как это описывалось выше, команда pc во время своего выполнения выдает список программ, выполняющихся на терминале в данном порту. При этом команда pc имеет следующий формат:
Данная команда должна быть введена еще раз с работающего терминала. Данная команда также выведет на экран терминала для каждой программы свой идентификатор процесса PID. Пользователь необходимо записать имя каждой программы и номер PID.
Иногда, определяя какая программа выполняется в текущий момент времени на терминале, можно сделать некоторые полезные выводы. Часто, выполняя анализ последней строки списка команды ps или программы, которая имеет наивысший PID, можно сделать выводы о причине блокировки терминала. Другие ключи к разгадке могут быть получены путем использования параметров -f и -d команды ps (комбинируя параметр -t в виде параметров -fit), которые выводят список начальных времен (STIME) и состояний (S) процесса, соответственно (для получения дополнительной информации по данному вопросу, пользователь должен в » Справочном руководстве для пользователей» изучить команду ps(C)).
Пользователь может установить, что различные программы, выполняющие на терминале, могут думать. Например, это может случиться в том случае, когда пользователь случайно осуществляет запуск программы из меню. В данном случае заблокированный терминал может быть освобожден за счет использования собственных команд, которые обеспечивают выход из нежелаемой программы.
Если программа, выполняющаяся в текущий момент времени, выполняет запланированные действия и терминал не отвечает на верно введенные команды, относящиеся к данной программе, то программа должна быть «убита». Только пользователь, который стартует программу, или супер пользователь (корень), могут убить программы пользователя. Таким образом пользователь войдет в работающий терминал при условии, что данные программы уже не сделали это (или войдет в корень).
В команде kill обычно используются два аргумента, аргумент signal и идентификатор PID. (Для получения дополнительных сведений пользователь должен изучить в «Справочном руководстве для пользователей» подробное описание команды kill(C). Примером использования команды kill, которая «убивает» выполняющуюся программу с идентификатором 1234, является следующая команда:
Данная команда посылает процессу 1234 сигнал 15, который «вежливо» сообщает программе о том, что требуется завершить работу. Данная команда оказывает минимальное влияние на систему (во время своей работы).
Сейчас используйте команду ps -t еще раз для того, чтобы определить завершила ли свою работу «убитая программа». Если выполнение программы не остановлено, то пользователю необходимо еще раз выдать команду kill с операндом 9 вместо операнда 15. Действием данной команды является «надежное убийство». Данное действие может привести к тому, что оставшиеся части программ не будут уничтожены. Примером таких частей программ являются временные файлы. Пользователю во время завершения своих действий необходимо найти данные программы в директориях /tmp и /usr/tmp, выполнив для этого просмотр данных файлов, владельцем которых он является, и удалить ненужные файлы. Следует заметить, что файлы, относящиеся к программам, которые не были «убиты», могут также находится в данных директориях. Если удаление данных программ вызывает у пользователя сомнения, то рекомендуется сохранить данные файлы и удалить их позднее.
После того, как каждая из выполняющихся программ будет «убита», может быть выполнено тестирование терминала. Терминал
может работать без ответа. Многие программы переводят терминал
в специальные режимы во время их выполнения и некоторые из данных режимов работы могут заблокировать терминал. Прикладные программы могут использовать режим, который называется «необработанным» режимом, в котором символы, вводимые в терминал не отображаются на экране. Во время нажатия ключей или ENTER в «необработанном» режиме возникает проблема, которая заключается в том, что обработка нажатия данных ключей осуществляется не так, как это ожидается.
Оболочка ожидает ввода символов j (подачи строки или новой строки) в конце каждой команды, однако большинство терминалов посылают символы m во время нажатия ключа . Обычно символы m транслируются в символы m, однако ес-
ли прикладная программа отключает данную трансляцию и затем завершает работу или будет «убита» без обратного включения трансляции, то пользователь должен ввести требуемые символы j с целью завершения выполнения своих команд.
На заблокированном терминале введите символы j, для начала новой строки и затем ввести следующую команду:
Обязательно используйте ввод символов j вместо нажатия на ключ или ключ ENTER в конце команды. Пользователю может потребоваться ввести данную команду дважды перед тем, как терминал выдаст ответы.
Последовательность действий «убить и оттестировать», приведенная выше, может быть необходима во время работы каждой программы, которая формирует выход команды ps. Многие системные администраторы просто убивают все программы с целью сокращения времени. Выбор данных действий зависит от пользователя.
Если команда ps -t показывает только программу с именем getty , то это означает, что пользователь «убил» все возможные программы и на терминале появится подсказка о регистрации. Если данная подсказка на экран терминала не будет выведена, то необходимо вернуться к началу проверки и снова проверить аппаратурные средства.
Некоторые программы не могут быть «убиты». Это встречается не часто и, чтобы «убить» данные программы существует только одно решение: должна быть выполнена свертка работы и выполнен повторный пуск компьютера.
Выявление блокировки клавиатуры консоли
Во время работы очень небольшого количества систем, возникает ситуация известная, как «блокировка клавиатуры». Если возникла данная ситуация, то система не отвечает на ввод с клавиатуры консоли. Данная проблема была всесторонне исследована и как показали исследования данная ситуация встречается весьма весьма редко. Данная ситуация оказывает влияние только на работу с клавиатурой, которая присоединена к видео адаптеру дисплея, и к нестандартным терминалам, подключенным к последовательным каналам.
Клавиатура на компьютере пользователя может быть заблокирована в следующих случаях:
. Клавиатура системной консоли не может быть использована для ввода данных или используется во время выполнения каких-либо задач.
. Пользователь не может переключить мультиэкраны и ключ не переключает индикатор блокировки заглавных букв в положение индикатор включен или индикатор выключен.
. Другие терминалы, входящие в систему, продолжают работу.
. Принтеры или другие устройства продолжают работу.
. Система все еще продолжает работу.
Блокировка клавиатуры аналогична другим ошибкам, и поэтому перед тем, как выполнить попытку выявления ситуации блокировки клавиатуры, пользователь должен убедиться в том, что:
. Случайно не были введены символы s.
. Ключ замка клавиатуры не находится в закрытом положении.
. Разъем клавиатуры еще вставлен.
. Сама система еще выполняет работу.
Во-первых, убедитесь в том, что случайно не были нажаты ключи s. Нажмите на ключ q несколько раз и сделайте проверку отображенных символов, введенных пользователем с клавиатуры. Нажмите на ключ возврата несколько раз, или введите .
Далее, проверьте ключ замка клавиатуры, если данный ключ предусмотрен на компьютере. Данный ключ должен переключаться в положение «открыто». Кроме этого, убедитесь, что клавиатура все еще подключена к нужной панели.
Убедитесь в том, что система все еще продолжает работу. Сделайте проверку терминала с целью выявление того, выполняет ли терминал работу, и возможно ли выполнение системных задач таких, как задача регистрация или задача проверки даты. Если в распоряжении пользователя отсутствует терминал, то контролируй-
те состояние индикатора доступа к накопителю на жестком магнитном диске, если данный индикатор предусмотрен на компьютере. Если данные индикаторы вспыхивают периодически, по крайней мере через каждые 30 секунд или около этого, то система все еще продолжает свою работу и использует накопитель на жестком магнитном диске. Следует помнить о том, что нельзя использовать другие терминалы и о том что индикатор доступа к накопителю на жестком магнитном диске может не вспыхивать тогда, когда выполняется работа в режиме единственного пользователя.
Если была выполнена проверка всех предполагаемых ошибочных ситуаций, при этом пользователь все еще не может работать со своей клавиатурой консоли, то необходимо отсоединить разъем клавиатуры консоли и после этого снова соединить данный разъем. Если данные действия выявляют причину возникновения ошибки, то данная ошибка определенно является причиной блокировки клавиатуры. Если выполнение последнего шага не приводит к выявлению ошибки, то во время работы компьютера произошла блокировка клавиатуры.
Пользователь может предотвратить блокировку клавиатуры путем использования специальной «заплаты», которая изменяет ядро операционной системы. (Ядро является основной программой операционной системы, которая всегда находится в памяти). Следует заметить, что данная «заплатка» отключает некоторые индикаторы клавиатуры (LED), и поэтому пользователю рекомендуется выполнить данные действия, только в том случае, если все приведенные ниже действия были испробованы:
1. Если системная консоль находится в нерабочем состоянии, то необходимо перевести системную консоль в состояние работы. Повторно загрузить операционную систему, если пользователю необходимо перейти в режим единственного пользователя.
2. Если операционная система не перегружается, то требуется войти с системой консоли в корень и сделать свертку операционной системы, переведя ее в режим единственного пользователя при помощи команды shutdown. Команда имеет следующий вид:
Дополнительная информация по использованию данной команды находятся в разделе «Команда shutdown(ADM)».
3. После того, как система переведена в режим единственного пользователя, восстановите ядро операционной системы используя следующие команды:
4. Далее введите следующие команды:
Данные команды фиксируют необходимые заплатки в ядре. Еще раз следует заметить о том, что данные действия приводят к постоянному отключению индикаторов клавиатуры консоли (LED).
5. Сделайте свертку системы, используя для этого следующую команду:
6. Если на экране появится сообщение «Нормальная системная свертка», то нажмите на любой клавиатурный ключ для выполнения перезагрузки операционной системы. После выполнения данных действий установлена причина блокировки клавиатуры.
7. И наконец, обратитесь в свой центр обслуживания и опишите данную ситуацию.
Выявление ошибки медленной печати параллельного принтера
Если во время работы возникла ошибка параллельного принтера, которая заключается в медленной печати принтера, то пользователю необходимо проверить конфигурацию в соответствии с процедурой описанной ниже. Если принтер все еще медленно печатает, то пользователь должен перейти к выполнению операции опроса. Проверьте приведенные ниже условия ввиду того, что данные условия важны для выявления правильной конфигурации параллельных портов компьютера:
1. Принтер должен быть совместим с принтером фирмы IBM и подключен через стандартный кабель интерфейса Centronics, используемый для подключения принтера.
2. Для компьютера IBM AT и совместимых с данным компьютером предусмотрено вплоть до двух параллельных портов. Выполните переконфигурацию дополнительных портов.
3. Параллельный порт, использующий монохромный адаптер, при формировании конфигурации использует вектор прерывания 7 и распознается во время перезагрузки системы как порт lp1.
4. Главный параллельный порт при формировании конфигурации использует вектор прерывания 7 и распознается как порот lp0. Во время работы можно использовать или главный или монохромный порт, а не тот и другой одновременно. В противном случае возникнут ошибки в аппаратурных средствах, которые вызывают медленную печать принтера.
5. Альтернативный или второй параллельный порт при формировании конфигурации использует вектор прерывания 5. Данный порт распознается как lp2. Убедитесь в том, что в других аппаратурных средствах не используются данные вектора прерываний. Необходимо изучить руководство по аппаратурным средствам с целью получения информации о конфигурации параллельных портов компьютера.
6. Выполните проверку, которая позволяет убедиться в том, что параллельный адаптер компьютера распознается при перезагрузке операционной системы. На экране компьютера появится приведенная ниже информация, защищенная авторским правом:
parallel 0x378-0x37a 07 — unit=0
Если данное сообщение не будет выведено на экран компьютера, то проверьте переключатели и перемычки на параллельном адаптере и убедитесь в том, что перемычки и переключатели установлены правильно. Если это возможно попытайтесь выполнить установку адаптера для различных конфигураций.
7. Убедитесь в том, что питание принтера включено и принтер переведен в состояние доступности. Убедитесь в том, что кабель правильно соединен между компьютером и принтером.
8. С консоли войдите в корень и посмотрите возможно ли перенаправить выходные данные на принтер. Используйте для этого следующую команду:
Если пользователь не увидел даты, напечатанной принтером , то скорее всего возникло несколько типов ошибок в аппаратурных средствах. И поэтому пользователь должен выполнить проверку следующих ситуаций:
. Кабель безопасно соединен и все провода не повреждены. Использование кабеля на заранее исправной системе и печать результатов под управлением операционной системы DOS является хорошей проверкой.
. Повторный контроль конфигурации принтера путем проверки положения переключателей, установленных на принтере с положениями переключателей, описанными в руководстве по аппаратурным средствам принтера.
. Повторный контроль переключателей, установленные на плате параллельного адаптера. Положение переключателей должно распознаваться во время выполнения процедуры самозагрузки в том виде, как это описывалось выше во время выполнения шага 6.
Если пользователь получил дату, выведенную на печать принтером, то ему необходимо выполнить следующую настройку принтера:
Принтеры -> Установить конфигурацию -> Подсоединить
Данная настройка обеспечивает настройку спулера, используемого во время работы принтера. (Дополнительная информация
по данному вопросу приведена в данном руководстве в разделе
Переключение на выполнение операции опроса
Если конфигурация параллельных портов была установлена правильно так, как это описывалось в предыдущем разделе, и все еще проявляется ошибка медленной печати принтера, то это означает, что параллельный порт компьютера не способен генерировать прерывания.
Решение, которое позволяет ликвидировать данную ошибку, заключается в изменении пути коммуникации аппаратурных средств компьютера и драйвера принтера. Драйвер параллельного принтера может сделать «переключение» параллельного порта. В данном способе обработки ошибки драйвер не использует прерывания, поступающие из параллельного порта. Тем не менее данный способ может привести к истощению системных ресурсов.
Чтобы воспользоваться возможностью переключения на параллельный порт или параллельный принтер, пользователю необходимо создать «специальный узел устройства». После этого зарегистрироваться в качестве корневого пользователя (супер-пользовате-
ля) и выдать один из приведенных ниже наборов команд. (Необходимо зафиксировать информацию о распознавании портов принтера, получаемую из сообщения о самозагрузке.)
Набор команд для принтера lp0:
mknod/dev/lp0p c 6 64
Набор команд для принтера lp1
mknod/dev/lp1p c 6 65
Набор команд для принтера lp2
mknod/dev/lp2p c 6 66
Если во время работы используется спулер принтера, то пользователю необходимо выполнить прогон утилиты mkdev lp с
целью уведомления спулера нового параллельного переключающего
устройства. В данной утилите пользователь может использовать
функцию добавления нового принтера или функцию повторной конфигурации существующего принтера. Когда пользователю выдается запрос о выборе устройства для принтера, запрещается использование стандартных параллельных устройств, список которых отображается на экране терминала. Вместо этого пользователь должен использовать следующие устройства: /dev/lp0p, /dev/lplp или /dev/lp2p.
Прекращение выполнения бесконтрольного процесса
Бесконтрольный процесс представляет собой выполняющуюся программу, которая не может быть остановлена с терминала, на котором данная программа была запущена. Данная ситуация может возникнуть всякий раз, когда ошибка, возникающая в программе, блокирует терминал, то есть, данная ошибка препятствует вводу информации, обрабатываемой в системе.
Чтобы прекратить выполнение бесконтрольного процесса, необходимо выполнить следующие шаги:
Пользователи системы sysadmsh выбирают следующие действия:
Работы -> Завершение действий
1. Перейти работать на терминал, который не заблокирован ошибкой.
2. Войти в систему в качестве супер пользователя.
3. Ввести команду:
Нажать на ключ . Система выведен на экран терминала все текущие процессы и их идентификационные номера PID. Найдите идентификационные номера PID бесконтрольно выполняющейся программы.
4. Введите команду:
Нажмите на ключ . Операнд PID является номером идентификации бесконтрольно выполняющейся программы. Выполнение программы будет приостановлено. Если выполнение процесса не остановлено, то пользователю необходимо ввести следующую команду:
После ввода данной команды нажмите на ключ .
Выполнение последнего шага гарантирует остановку процесса, однако данная команда сохраняет временные файлы или терминал, который работает в режиме без эхо ответа. Чтобы восстановить
терминал к нормальному режиму, пользователю необходимо выполнить действия, описанные ранее в разделе «Восстановление терминала без это ответа.
Источник