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

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

skype: metsof
email: accusser@gmail.com

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

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

Авторизация

Fedora

Сайдбар

Fedora

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

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