19.7.9. Обработка сигналов и протоколирование
Возможно, вы хотите обеспечить выполнение вашего сценария после выхода пользователя из интерпретатора или выполнить какие-нибудь действия при отключении удаленного пользователя от системы. «Перехватить» сигнал (прерывание) можно с помощью команды trap. Формат команды trap следующий:
trap имя сигналы
где: имя — это имя функции или набор команд, которые должны быть выполнены при получении сигнала;
сигналы — наиболее часто используется перехват сигналов, описанных в табл. 19.42. Полный список сигналов вы найдете в гл. 5.
Сигналы Таблица 19.42
Номер Название Описание 01 SIGHUP Освобождение линии (hangup) 02 SIGINT Прерывание (interrupt) 03 SIGQUIT Выход (quit) 09 SIGKILL Уничтожение процесса (kill). He перехватывается и не игнорируется 15 SIGTERM Программный сигнал завершения
Пример. Игнорирование сигналов 1, 2, 3, 15
trap : 1 2 3 15
: — это пустой оператор, не выполняющий никаких действий.
Рассмотрим, как можно протоколировать работу собственного сценария. Для этого существуют два способа – с помощью команды tee и команды script.
Способ 1:
$LOGFILE=my_log
if ["$LOGGING" != "true"] then export LOGGING="true"; exec $0 I tee $LOGFILE; fi
Способ 2:
$LOGFILE=my_log
if ["$LOGGING" != "true"]; then export LOGGING="true"; exec script $0 $LOGFILE; fi
В первом случае мы устанавливаем флаг протоколирования LOGGING и заново запускаем наш сценарий. При этом перенаправляем весь стандартный вывод команде tee, которая выполнит протоколирование. Второй способ аналогичен первому за исключением того, что мы не будем самостоятельно запускать сценарий — это за нас выполнит команда script. Оба способа можно использовать для протоколирования работы других программ:
script program ~/program.log
20
Графический интерфейс пользователя.
Система X Window
Система X Window является мощной графической средой для UNIX-станций. Данная система была разработана Массачусетским технологическим институтом (MIT) и стала стандартом для всех UNIX-систем. Практически каждая рабочая станция UNIX работает на одном из вариантов системы X Window.
Группа программистов, возглавляемая Дэвидом Вексельблатом (David Wexelblat) создала свободно распространяемую версию MIT X Window для процессоров i80386–Pentium IV и совместимых с ними. Эта версия получила название XFree86, поскольку могла выполняться в операционных системах, предназначенных для процессоров, использующих систему команд х86 — Linux, FreeBSD и другие. XFree86 является торговой маркой XFree86 Project, Inc.
Данная глава включена в книгу последней, так как графический интерфейс на сервере — это излишество. Зачем тратить драгоценные системные ресурсы на графический интерфейс, если хороший администратор подходит к серверу очень редко, а иногда вообще один раз — во время первоначальной настройки? Однако, если вы начинающий администратор, графический интерфейс поможет вам быстрее настроить тот или иной сервис. Может случиться такое, что вы установите новую версию дистрибутива и окажется, что расположение некоторых системных файлов будет изменено. Чтобы не тратить время на прочтение документации, вы можете использовать один из конфигураторов, например, netconf или linuxconf. Графический конфигуратор уж точно знает, где и что лежит. Но применение графического интерфейса только для конфигураторов не оправдано, потому что упомянутые конфигураторы работают и в консоли.
Другая причина применения GUI (Graphic User Interface — графический интерфейс пользователя) — удобство: браузер netscape удобнее, чем lynx, хотя и к последнему можно привыкнуть, если в нем часто работать. Обычно, если позволяют системные ресурсы, устанавливается система X Window, но не настраивается для автоматического запуска. Какой бы ни была причина установки вами системы X Window, если вы все-таки установили ее, то эта глава для вас. В этой главе мы рассмотрим конфигурирование X Window (далее X), а также работу в графических средах KDE и Gnome.
Двумя предложениями выше я упомянул, что установить X вы можете, если позволяют системные ресурсы. Какие же минимальные системные требования X? Как бывает со многими Linux-приложениями, здесь более критичен объем оперативной памяти, чем частота процессора. Intel Pentium III 600 MHz/32 MB работал при запущенном КОЕ в два раза медленнее, чем Celeron 433 MHz/64 MB. Для комфортной работы с KDE и многими Х-приложениями необходимо 64 или даже 128 Мб оперативной памяти. Желательно иметь в запасе 64…128 Мб своп-пространства. Частота процессора — не менее 200 MHz. Как видите, если для работы сервера, например, шлюза, достаточно процессора Intel Pentium 133 MHz и 32 MB памяти, то при установке X минимальные системные требования возрастают. Я понимаю, что делаю из мухи слона, потому что сейчас минимальная конфигурация компьютера — Celeron 400 MHz /128 MB, но все это сказано для владельцев старых компьютеров. Например, если у вас где-нибудь завалялся старенький IP 166 ММХ/32 MB, он еще может принести большую пользу, если использовать его как шлюз для доступа к Интернет целой сети предприятия. И все это будет работать намного быстрее, чем организованный на скорую руку шлюз на платформе Windows 98 + WinGate, даже При использовании Pentium III. Более мощные компьютеры можно загрузить, соответственно, и более ответственными и ресурсоемкими процессами под управлением окон — набором текстов в Word и просмотром МР4. Извините, я немного отвлекся. Я говорил о стареньком компьютере, который может нам еще пригодиться. Так вот, если не хотите испортить приятное впечатление от Linux, не устанавливайте на таком компьютере X Window. Помню свою первую попытку установить Linux + X Window. Тогда у меня был как раз IP 166ММХ. Установить-то установил, и X настроил, а вот удовольствия от работы не было никакого. При использовании менее ресурсоемких оконных менеджеров, например, fvwm и fvwm2, все работало удовлетворительно, а вот KDE тогда еще самой первой версии жутко притормаживал.
20.1. Установка и запуск системы
Удобнее всего устанавливать систему X Window при установке операционной системы. Если вы еще не сделали этого, сейчас рассмотрим установку системы из пакетов. Обычно все необходимые пакеты находятся на первом инсталляционном диске Linux. Перейдите в каталог /mnt/cdrom/Mandrake/RPMS, если вы используете Mandrake, или /mnt/cdrom/RedHat/RPMS, если вы используете Red Hat Linux. Проще всего установить все пакеты сразу:
rpm –in XFree*
Для установки всех программ для X Window введите команду:
rpm –ih x*
Такая команда у вас будет работать, если вы не используете или еще не установили демон xinetd. В противном случае менеджер RPM-пакетов сообщит вам, что пакет xinetd уже установлен и установка всех пакетов будет прервана.
Естественно, такой вариант (вариант установки всех программ) вас не устраивает — уж больно он неэкономно относится к дисковому пространству. Попробую перечислить необходимые пакеты для установки X Window и KDE. В любом случае вам нужно установить следующие пакеты:
XFree86-4.0.1-2 8mdk.i586.rpm — основной пакет
XFree86-libs-4.0.1-28mdk.i586.rpm — библиотеки
XFree86-server-4.0.l-28mdk.i586.rpm
XFree86-server-common-3.3.6-18mdk.i586.rpm
XFree8 6-xfs-4.0.1-28mdk.i586.rpm — сервер шрифтов
XFree86-glide-module-4.0.1-28mdk.i586.rpm — модуль glide
XFree86-FBDev-3.3.6-18mdk.i586.rpm
XFree86-Xvfb-4 .0.1-28mdk.i586.rpm — виртуальный буфер кадров для X Window
XFree86-Xnest-4.0.1-2 8mdk.i586.rpm
XFree86-100dpi-fonts-4.0.1-28mdk.i586.rpm
XFree86-75dpi-fonts-4.0.1-28mdk.i586.rpm
XFree86-cyrillic-fonts-4.0.1-28mdk.i586.rpm
xinitrc-2.4.4-32mdk.noarch.rpm
XFree86-SVGA-3.3.6-18mdk.i586.rpm
Последний пакет является сервером для вашей видеоплаты. Данный сервер может работать с большинством видеоадаптеров SVGA. Если у вас другая видеоплата, например, Mach 8, 32, 64; AGX, S3, VIRGE, IBM 8514, установите соответствующий сервер. Этим вы обеспечите корректную работу всей системы. X Window. После установки X перейдем к установке KDE. Если ввести команду:
rpm –ih kde*
система установит много ненужных пакетов с документацией. Все пакеты kde-i18n* содержат одну и ту же документацию, но на разных языках — от бразильского до украинского. Данные пакеты также выполняют локализацию KDE. В любом случае вам нужно установить только один пакет из всех этих — kde-i18n-Russian-2.0-1mdk.i586.rpm. Устанавливать его нужно после остальных пакетов среды KDE.
Вот какие пакеты вам нужно установить:
1. kdebase-2.0-7mdk.i586.rpm — базовый пакет
2. kdelibs-2.0-5mdk.i586.rpm — библиотеки