Linux для пользователя - Виктор Костромин
Шрифт:
Интервал:
Закладка:
После создания области подкачки (будь это хоть раздел, хоть файл) на ней необходимо создать соответствующую файловую систему, что делается командой mkswap следующим образом:
[root]# mkswap -c swapfile [size]
или
[root]# mkswap -c /dev/hdb3
Опция -c обеспечивает проверку указанной области на наличие плохих блоков. Если таковые обнаружены, сообщается их количество.
Linux использует страничную организацию памяти и области подкачки. Размер страницы можно указать в команде mkswap, используя опцию -p. Типичные значения, указываемые после этой опции, 4096 и 8192. Надо сказать, что команда mkswap отказывается работать с областями подкачки, размер которых менее 10 страниц, чем и объясняется то, что размер файла подкачки должен быть не менее 40 Кбайт.
Команда mkswap подготавливает область подкачки к использованию, но чтобы система могла ее использовать, необходимо эту область инициализировать (эта операция аналогична монтированию обычных файловых систем). Инициализация выполняется с помощью команды swapon. Обычно это делается во время выполнения инициализационного скрипта /etc/rc.d/rc.sysinit. Но если вы создали файл подкачки после запуска ОС, надо выполнить эту команду отдельно. Команда swapoff производит демонтаж указанных областей подкачки. Эта команда необходима для того, чтобы ядро могло снова считать в память данные из области подкачки.
ОС Linux может одновременно работать с несколькими областями подкачки (до 8). Сколько их задействовано в системе, можно увидеть с помощью команды swapon -s или просмотрев файл /proc/swaps.
8.3.3. Запуск демонов
В разд. 8.2, посвященном описанию процесса загрузки, было сказано, что запуск системных сервисов осуществляется скриптом /etc/rc.d/rc, который вызывается с параметром, определяющим уровень запуска. В этом скрипте поочередно вызываются на выполнение все программы и скрипты, ссылки на которые содержатся в особом каталоге /etc/rc.d/rcN.d, где N - номер уровня выполнения. Ссылки в каталоге /etc/rc.d/rcN.d имеют имена KNNname и SNNname, где NN - порядковые номера, определяющие последовательность запуска скриптов, а name - имя соответствующей программы (это имя приводится, скорее всего, просто для удобства пользователей, его отсутствие ничего бы не изменило). Скритп /etc/rc.d/rc вначале последовательно (в порядке присвоенных номеров NN) вызывает программы, на которые ссылаются линки KNNname. При этом программы вызываются с аргументом stop, т. е. соответствующие службы останавливаются. Затем так же последовательно перебираются ссылки с именами SNNname и соответствующие программы вызываются с параметром start.
Давайте рассмотрим процесс запуска новой службы на примере запуска Web-сервера Apache. Я выбрал для примера этот сервис только потому, что на изолированном персональном компьютере вы его, скорее всего, не установили при инсталляции системы. Можно было бы для примера взять Samba-сервер или сервер FTP, или любую другую службу. Последовательность действий в любом случае одинакова.
Естественно, что вначале надо установить в системе соответствующий пакет. Находим на дистрибутивном диске или скачиваем из Интернета пакет (пусть это будет apache-1.3.19-3.i586.rpm). Выполняем установку
[root]# rpm -Uhv apache-1.3.19-3.i586.rpm
При необходимости предварительно устанавливаем требующиеся дополнительные пакеты. После этого надо произвести все необходимые настройки сервера. Мы здесь не рассматриваем вопросы настройки сервера Apache. Пока вы не закончили с его настройкой, можно запускать сервер "вручную", чтобы проверить, как все работает. После того, как настройка сервера завершена, можно заняться организацией его автоматической загрузки при запуске системы. Для этого переходим в каталог /etc/rc.d/rcN.d и создаем там ссылку на демон httpd:
[root]# ln -s /usr/sbin/httpd SNNapache
Значение NN для этой ссылки вы можете выбрать сами (в данном случае желательно запускать этот сервер после запуска других служб, поэтому значение надо брать по-больше, например, 98). После этого сервер Apache будет автоматически загружаться при старте системы. Если потом вы захотите отказаться от его автоматического запуска, просто удалите ссылку SNNapache из каталога /etc/rc.d/rcN.d.
Надо сказать, что существует специальная утилита для управления запуском сервисов (демонов) на разных уровнях выполнения. Она называется chkconfig. Если ее запустить с опцией - list, вы получите полный список доступных сервисов, с указанием того, запускается или нет данный сервис на каждом уровне. Опции - add и - del служат для создания или удаления соответствующей ссылки в каталоге /etc/rc.d/rcN.d:
[root]# /sbin/chkconfig [--add | --del] name
Формат команды для запуска или остановки сервиса следующий:
[root]# /sbin/chkconfig [-- level levels] name [on | off | reset]
Так что запуск демона apache можно осуществить командой
[root]# /sbin/chkconfig -level 345 httpd on
8.3.4. System V Init Editor ksysv
В оболочке KDE имеется очень удобная утилита для управления запускаемыми на разных уровнях службами. Она называется ksysv или System V Init Editor и запускать ее надо от имени суперпользователя, иначе она будет только показывать существующую конфигурацию служб, но не будет позволять ее менять. После запуска этой программы вы увидите окно, изображенное на рис. 8.1.
В правом нижнем углу находятся 7 переключателей, которые позволяют определить, какие уровни исполнения будут отображаться (для уменьшения размера картинки я отключил отображение некоторых уровней). В левом поле отображаются все доступные в системе сервисы. Если поместить указатель мыши на название службы, появится краткое описание данной службы. А если щелкнуть левой кнопкой по имени службы, то это же описание появляется в отдельном окне (рис. 8.2), на двух других вкладках которого (рис. 8.3 и 8.4) можно узнать некоторые характеристики запускаемой программы, владельца и группу программы, а также их права и полномочия.
На вкладке Service имеются 4 кнопки (вы можете видеть их на рисунке 8.2), которые позволяют запустить службу, перезапустить ее (Restart), остановить или редактировать соответствующий скрипт. Сообщения, выдаваемые при запуске, перезапуске, остановке службы, отображаются в нижнем поле основного окна программы. В двух рядах полей, отображаемых справа вверху, и соответствующих различным уровням выполнения, показаны службы, останавливаемые и запускаемые при переходе на каждый уровень. С помощью мыши можно удалить ссылку на какой-то сервис или добавить такую ссылку.
Рис. 8.1. Основное окно программы ksysv
Рис. 8.2. Окно свойств службы
Рис. 8.3. Вкладка General
Рис. 8.4. Вкладка Permossions
На этом закончим рассмотрение данной программы. Конечно, не имея достаточного опыта пользоваться этой программой надо осторожно. Но, с другой стороны, откуда же опыту взяться, если его не набирать?
8.4. Управление процессами
Первым делом научимся определять, какие процессы в системе запущены. Для этого в Linux (как и во всех UNIX-системах) имеется команда ps. Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущей сессии. Если вы хотите увидеть список всех процессов, запущенных в системе, надо задать ту же команду с параметром -ax.
8.4.1. Команда ps
Когда я заглянул в man-страницу, посвященную команде ps, я был поражен, как много у нее разных опций. Как оказалось, GNU-версия этой программы, входящая в состав Linux, поддерживает опции в стиле трех разных типов UNIX. Опции в стиле Unix98 состоят из одного или нескольких символов, перед которым(и) должен стоять дефис. Опции в стиле BSD имеют аналогичный вид, только используются без дефиса. Опции, характерные только для GNU-версии представляют собой слово, перед которым должно стоять два дефиса. Их нельзя объединять, как однобуквенные опции двух предшествующих типов. Таким образом, существует три равноправных формата задания этой команды:
ps [-опции]
ps [опции]
ps [-- длинное_имя_опции [-- длинное_имя_опции]…]
При этом опции разных типов нельзя употреблять в одной команде. Дадим краткую характеристику наиболее важных опций.
Первая группа опций регулирует вывод команды. Независимо от наличия опций этой группы команда ps выдает для каждого процесса отдельную строку, но содержимое этой строки может быть разным. В зависимости от заданных опций могут присутствовать следующие поля:
• USER - имя владельца процесса;
• PID - идентификатор процесса в системе;
• PPID - идентификатор родительского процесса;
• %CPU - доля времени центрального процессора (в процентах), выделенного данному процессу;
• %MEM - доля реальной памяти (в процентах), используемая данным процессом;
• VSZ - виртуальный размер процесса (в килобайтах);
• RSS - размер резидентного набора (количество 1K-страниц в памяти);