D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Unix / perrpt

perrpt

Выводит на экран или перезапускает журнал регистрации ошибок D3/Unix

perrpt {-e {code}} {-h} {-f file.name} {-p pib} [-a|-k key|-x key|-c|-s]

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

Имеются следующие опции:

-e {code} Отображаются только ошибки. Загрузки и закрытия не отображаются. Если указан код, отображаются только журнальные записи с этим кодом ошибки.
-h Отображаются только заголовки журнальных записей (краткая форма). Выдается следующая информация:
  • Дата и время Unix
  • Ключ виртуальной машины
  • Версия монитора
  • Код ошибки
  • Описание ошибки
  • Номер порта (PIB)
-f file.name Указанный файл используется в качестве журнала вместо файла, используемого по умолчанию.
-p pib Выдаются все записи, зарегистрированные портом "pib" D3. Порт указывается десятичным числом.
-a Отображаются журналы регистрации ошибок для всех виртуальных машин.
-k key Выдаются ошибки, зарегистрированные для виртуальной машины, заданной в 'key'. Ключ виртуальной машины имеет стандартный синтаксис языка С: 0xNNNN для шестнадцатеричного числа, NNNN для десятичного числа и 0NNNN для восьмеричного числа.
-x key Выдаются журналы регистрации ошибок для всех виртуальных машин, кроме той, которая указана в "key". Ключ виртуальной машины имеет стандартный синтаксис языка C: 0xNNNN для шестнадцатеричного числа, NNNN для десятичного числа и 0NNNN для восьмеричного числа.
-c Очищает журнал регистрации ошибок и начинает регистрацию ошибок заново. Требует привилегий 'root'.
-s Очищает журнал регистрации ошибок и останавливает процесс регистрации. Требует привилегий 'root'. После выдачи этой команды регистрация ошибок производиться не будет. Для возобновления регистрации ошибок используется опция "-c". Регистрация приводится в действие автоматически каждый раз, когда D3 (пере)устанавливается в системе.

В качестве журнала регистрации ошибок используется файл /tmp/ap.log'. Каждая журнальная запись содержит дату и время события, шестнадцатеричный ключ виртуальной машины, код ошибки, номер порта (PIB) процесса, который ЗАРЕГИСТРИРОВАЛ ошибку (что не всегда совпадает с портом, на котором имела место проблема) и дополнительную информацию в форме шестнадцатеричного дампа. Ниже кратко объяснены ошибки и формат дополнительной информации:

1 Загрузка
2 Закрытие
3 Линия 0 или программа сброса на диск ("flusher") получила SIGTERM. Когда программа сброса на диск получает этот сигнал, она закрывает виртуальную машину. Если система закрывается должным образом, в журнал заносится запись с кодом "2" (т.е. обычная запись по поводу закрытия). В противном случае запись будет другой (например, "ap -k").
perrpt Процесс убит. Если процесс D3 не отвечает, активизируется "logoff" и посылает процессу D3 сигнал SIGKILL. Следующая дополнительная информация предоставляется в шестнадцатеричном виде: <pib+1 убитого процесса> <pib+1 процесса, убившего процесс>
Аварийное прерывание процесса. Если процесс получает серьезный сигнал прерывания (SIGSEGV, SIGBUS, SIGTRAP и т.п.), регистры машины сбрасываются в виде дополнительных данных (в формате, который зависит от реализации системы).
Отказ по причине защиты. Неправильный код активации.
<зарезервировано>
8 Ошибка ленты. Дополнительная информация содержит следующее:
<cmd> <devnum> <errno>
<cmd> 0 (Read), 1 (Write)
<devnum> шестнадцатеричный номер ленточного устройства
<errno> шестнадцатеричный код ошибки в ОС Unix.
9 Неудачная операция присвоения ленточного буфера. Внутренний ленточный буфер присваивается динамически. Если операция неудачна из-за временного отсутствия свободной памяти у ОС Unix, может показаться, что команда "set-device" зависла.
10 Ошибка чтения клавиатуры. Процесс пытался читать из "stdin" (как правило, это клавиатура) и получил ошибку. Процесс будет отключен. Выдается следующая шестнадцатеричная информация:
<pib> <errno>
11 Ошибка записи на терминал. Процесс пытался осуществить запись в "stdout" (как правило, терминал) и получил ошибку. В шестнадцатеричном виде предоставляется следующая дополнительная информация:
<pib> <errno>

Примеры:

perrpt -a | pg

Показывает все зарегистрированные ошибки с остановкой на каждой странице.

perrpt -e -k 0x29733 | lp

Показывает только ошибки, относящиеся к виртуальной машине с ключом 0x29733 (шестнадцатеричным), и передает результат спулеру ОС Unix.

perrpt -c

Очищает файл регистрации ошибок, но оставляет регистрацию активной или возобновляет регистрацию, если она была приостановлена.

perrpt -s

Прекращает регистрацию ошибок.

perrpt -e 4 -h

Выдает все записи с кодом ошибки "4" в краткой форме.

mv  /usr/tmp/ap.log  /usr/tmp/ap.log.monday
perrpt -a -f /usr/tmp/ap.log.monday

Текущий журнал запоминается в файле "usr/tmp/ap.log.monday", и производится его вывод.