Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Операционная система Fedora Linux

10 марта 2014

Особенности Upstart


Хотя Fedora применяет при запуске Upstart, стандартный уровень запуска по-прежнему настраивается в /etc/inittab. Но все остальные настройки из этого файла игнорируются!

Upstart отвечает за графическое представление процесса загрузки (plymouth), за запуск эмуляторов терминалов для текстовых консолей и за запуск системы X (prefdm). Все остальные вопросы инициализации решаются с помощью сценариев, обеспечивающих совместимость с Init-V. Программа prefdm начинает работу после завершения выполнения всех сценариев Init-V с уровня запуска 5.

И plymouth, и X в Fedora используют консоль l (а не консоль 7, как в большинстве других дистрибутивов). Поэтому на уровне запуска 5 в этой консоли не начинает работать никакой эмулятор терминала.

Индивидуальная настройка процесса Init-V



С помощью файла /etc/init.d/rc.local вы можете с легкостью произвести индивидуальную настройку процесса Init-V. Это сценарий, выполняемый после всех остальных сценариев Init-V в ситуации, когда впервые активизируется уровень запуска 2, 3, 4 или 5. При последующем изменении уровня запуска или при окончании работы компьютера сценарий больше не выполняется!

Интерактивное выполнение процесса Init-V



Если в ходе инициализации системы была нажата клавиша I, командой touch создается файл /var/run/confirm. Чтобы убедиться, что этот файл существует, выполните /etc/rc.d/rc. Если он существует, то при выполнении всех сценарных файлов rcn.d система выдает запрос YES/NO/CONTINUE, где CONTINUE означает, что все остальные файлы должны выполняться без такого запроса.

Интерактивный режим удобен, если при выполнении сценариев Init-V, предназначенных для активизации уровней запуска, возникают проблемы. Однако не забывайте, что интерактивный режим задействуется только после окончания инициализации системы. Если проблема возникнет ранее, вам сильно не повезет.

Запуск сценариев Init-V



Команда service частично избавляет вас от работы с клавиатурой при вводе сценария Init-V вручную:

root# service samba start root# service samba stop root# service samba status

samba остановлена


При переходе с одного уровня запуска на другой останавливаются только те функции, которые были активизированы на предыдущем уровне запуска, а на новом уровне запуска не нужны. Аналогичным образом запускаются только такие функции, которые до этого были неактивны. Чтобы это гарантировать, при запуске любого системного процесса в каталоге /var/lock/subsys создается новый файл. После окончания процесса этот файл удаляется. Более подробное описание того, как в Fedora реализована концепция процессов Init-V, содержится в каталоге /usr/ share/doc/initscripts-n.

Управление ссылками Init-V


Команда chkconfig помогает управлять ссылками на сценарии уровней запуска. Если сообщить этой команде параметр --list, она выдает обзор всех сценариев и указывает, на каком уровне они были запущены. Если установлен демон xinetd, будут перечислены и его службы.

<code>root# chkconfig --list

NetworkManager 0:0ffl:0ff2:0n 3:0n 4:0n 5:0n 6:0ff

NetworkManagerD 0:0ff l:0ff 2:0ff 3:0ff 4:0ff 5:0ff 6:0ff

acpid 0:0ff l:0ff 2:0ff 3:0n 4:0n 5:0n 6:0ff

Службы на базе xinetd: chargen-udp: Off
</code>

С помощью параметра — -del можно вообще отменить выполнение сценариев уровней запуска. Сам сценарий сохраняется, удаляется лишь ссылка в каталоге rcn.d.

root# chkconfig --del samba

Команда chkconfig --add добавляет для всех предусмотренных уровней запуска ссылки для старта и завершения новой службы. Правда, параметр — -add функционирует лишь в том случае, если в файле сценария Init-V прямо указана информация о том, на каком уровне по умолчанию запускается сценарий.

По многим сценариям такая информация отсутствует. Чтобы в дальнейшем можно было запускать подобный сценарий автоматически, используйте chkconfig --level n имя on/off. Такой синтаксис удобен и в тех случаях, когда вы, несмотря на настройки, заданные по умолчанию, сами хотите задать для сценария уровень запуска.

Допустим, в сценарном файле /etc/rc.d/init.d/httpd отсутствует информация о том, на каких уровнях должен автоматически запускаться сервер. Поэтому chkconfig --add создает только ссылки для завершения работы веб-сервера. Команда chkconfig --level добавляет ссылки для запуска сервера на уровнях 3 и 5; chkconfig --list отображает результат:

<code>root# chkconfig --add httpd root# chkconfig --level 35 httpd on root# chkconfig --list httpd

httpd 0: Off 1: Off 2: Off 3:0n 4: Off 5:0n 6: Off</code>


Команды chkconfig --add и chkconfig --del работают и со службами xinetd. Xinetd — это демон, задача которого в том, чтобы запускать остальные сетевые службы только при необходимости. В качестве альтернативы chkconfig для администрирования Init-V предоставляется графический пользовательский интерфейс system-config-services. Вы также можете запустить эту программу командой serviceconf. Она позволяет вручную запускать, останавливать и снова запускать некоторые демоны и сетевые службы xinetd. Кроме того, с помощью мыши вы можете отметить для определенного уровня запуска, какие службы должны запускаться по умолчанию.

Как построены файлы сценариев Init-V


Ниже показан пример сценария Init-V из Red Hat и Fedora. Предметом дискуссии является сценарий для запуска веб-сервера httpd, который я немного сократил ради экономии места.

<code>#!/bin/bash

# httpd Сценарий для запуска сервера Apache HTTP


# chkconfig: - 85 15

# description: Сервер Apache HTTP - это эффективный расширяемый сервер, \

# работающий в соответствии с современными стандартами HTTP.

# processname: httpd

# config: /etc/httpd/conf/httpd.conf

# config: /etc/sysconfig/httpd

# pidfile: /var/run/httpd/httpd.pid ### НАЧАЛО РАЗДЕЛА ОБ INIT

# Provides: httpd

# Required-Start: $local_fs $remote_fs Snetwork Snamed

# Required-Stop: $local_fs $remote_fs Snetwork

# Should-Start: distcache

# Short-Description: start and stop Apache HTTP Server

# description: Сервер Apache HTTP - это эффективный расширяемый сервер, \

# работающий в соответствии с современными стандартами HTTP. ### КОНЕЦ РАЗДЕЛА ОБ INIT

# Загрузка различных функций . /etc/rc.d/init.d/functions

# Загрузка конфигурационного файла if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi

# Инициализация различных переменных HTTPD_LANG=${HTTPD_LANG-"C"} INITLOG_ARGS="" apachectl=/usr/sbin/apachectl httpd=${HTTPD-/usr/sbin/httpd} prog=httpd

pidfile=${PIDFILE-/var/run/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd}

RETVAL=0

# Функции для start, stop и reload startO {echo -n $"Starting $prog: " checkl3 || exit l

LANG=$HTTPD_LANG daemon Shttpd SOPTIONS RETVAL=$?echo[ SRETVAL =0]&& touch ${lockfile} return SRETVAL}
stop() {...} reloadO {...}

# Вызов предыдущих функций case "$l" in start) start stop) stop restart) stop start*)"

echo $"Usage: Sprog {start|stop|restart|condrestart|reload|status|\ fullstatus|graceful|help|configtest}"

exit l

esac

exit SRETVAL
</code>

Для правильной интеграции chkconfig в систему Init-V решающее значение имеет строка комментария в начале сценария. При этом действует следующий синтаксис chkconfig: runlevel start stop. Параметр start указывает, на каком уровне должен автоматически запускаться сценарий (например, 35 — для уровней запуска 3 и 5). Если здесь, как в приведенном выше примере, поставить только дефис, то сценарий нужно добавить к процессу Init-V с помощью chkconfig--level.

Параметр start указывает, какой номер должна иметь ссылка для запуска. Здесь можно указать число в диапазоне от 00 до 99. Чем выше значение, тем раньше будет запущен сценарий в ходе выполнения Init-V. Аналогичным образом stop указывает номер ссылки для остановки процесса. Обратите внимание, что в chkconfig также обязательно должна присутствовать строка description!

Основной программный код начинается лишь с команды case. В зависимости от того, какие команды были переданы сценарию, на данном этапе выполняется одна из предварительно определенных функций — для запуска или остановки httpd.


Пример собственного сценария Init-V



Если вам требуется собственная (сетевая) функция и собственный сценарий Init-V, то код может получиться гораздо компактнее. Код из следующего примера активизирует или деактивизирует функцию маскарадинга, позволяя, таким образом, другим компьютерам использовать соединение с Интернетом. Вы можете и сами писать по этому образцу сценарии Init-V, активизирующие ваш брандмауэр и запускающие ADSL-соединение уже на этапе выполнения процесса Init-V и т. д.

<code>#!/bin/bash

# /etc/rc.d/init.d/masq

#

# chkconfig: 35 95 05

# description: начало маскарадинга . /etc/rc.d/init.d/functions INETDEV=ethO

case "$1" in start)

echo -n $"Starting masquerading: "

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A POSTROUTING -t nat -o SINETDEV -j MASQUERADE

touch /var/lock/subsys/masq

echo_success

stop)

echo -n $"Stopping masquerading: "

iptables -D POSTROUTING -t nat -o SINETDEV -j MASQUERADE

echo 0 > /proc/sys/net/ipv4/ip_forward

rm -f /var/lock/subsys/masq

echo_success</code>

Читайте так же:
Операционная система SUSE Linux






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать