Уроки Phptoshop, Linux, Windows 7
20 Май 2012, 15:03:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости:
 
  Начало   Форум   Помощь Поиск Календарь Пользователи Downloads Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Хитрости запуска служб в Linux.  (Прочитано 3459 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Svictor
Администратор
Активист
*****

Карма: + 5/ -0
Мужской
Сообщений: 127
Активность на форуме
0%

svictor_ru WWW Награды
« : 13 Январь 2010, 17:24:11 »

Наверное не для кого не секрет что скрипты запускаемых служб в Linux
располагаются в /etc/rc.d/init.d или /etc/init.d в зависимости от
дистрибутива. Для того чтобы скрипт запускался автоматически во время
запуска системы надо создать символическую ссылку на скрипт и разместить
её в каталоге /etc/rc.d/rcN.d или /etc/rc.d/rcN.d, где N –
соответствует уровню выполнения скрипта.


Уровень 0
остановка системы (halt) - работа системы должна быть прекращена;

Уровень 1
однопользовательский режим работы - система инициализирует минимум
служб и даёт единственному пользователю (как правило,
суперпользователю) без проведения аутентификации командную строку.
Как правило, этот режим используется для восстановления системы;

Уровень 2
многопользовательский режим - пользователи могут работать на разных
терминалах, вход в систему с процессом аутентификации;

Уровень 3
многопользовательский сетевой режим - в отличие от предыдущего
уровня, осуществляется настройка сети и запускаются различные
сетевые службы;

Уровень 4
не имеет стандартного толкования и практически не используется;

Уровень 5
запуск графической подсистемы - по сравнению с уровнем 3
производится также старт графической подсистемы X11 , и вход в
систему осуществляется уже в графическом режиме;

Уровень 6
перезагрузка системы - при включении этого режима останавливаются
все запущенные программы и производится перезагрузка.

Чаще всего во время загрузке система использует уровни загрузки 3 или 5.
Однако есть некоторая хитрость в названии самой символической ссылки, о
которой многие умалчивают, и которой я хочу рассказать. Например:
/etc/rc.d/rc0.d/K60crond и /etc/rc.d/rc3.d/S40crond, указывающие на один
скрипт /etc/init.d/crond службы системного журнала. Скрипт, начинающийся
с "K" соответствует останову службы, а "S" - запуску. Числа, следующие
перед именем службы задают порядок запуска скриптов в директории.
Например, скрипт /etc/rc.d/rc3.d/S34syslogd будет запущен до скрипта
/etc/rc.d/rc3.d/S40crond, тогда как /etc/rc.d/rc3.d/K60crond до
/etc/rc.d/rc3.d/K66syslogd. Можно заметить, что сумма чисел для одной
службы равна 100 - это позволяет упорядочить все скрипты в порядке
старта, обратном порядку завершения. Создавать самому символические
ссылки весьма утомительно, и для этого лучше использовать специальную
утилиту chkconfig.


Синтаксис её использования весьма прост:

chkconfig --list [имя сервиса]
chkconfig --add
chkconfig --del
chkconfig [--level ]



Где имя сервиса - это имя исполняемого скрипта находящегося в /etc/rc.d/init.d

Однако и тут есть небольшая хитрость, дело в том что скрипт запуска
должен иметь специальный формат, например такой:

Код:
#!/bin/sh
# chkconfig: - 98 02
# description: Описание процесса
# processname: Имя процесса

# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
KIND="Имя_сервиса"
start() {
echo -n $"Starting $KIND services: "
daemon /usr/local/sbin/исполняемый_файл
echo
}

stop() {
echo -n $"Shutting down $KIND services: "
killproc исполняемый_файл
echo
}

restart() {
echo -n $"Restarting $KIND services: "
killproc исполняемый_файл
daemon /usr/local/sbin/исполняемый_файл
echo
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?

Главное тут в следующем, во первых скрипт должен иметь как минимум 3
возможных ключа запуска, это: start, stop, restart, поскольку именно
эти основные команды используются для запуска, останова и перезапуска.
Плюс ко всему к этому в самом начале файла пишутся те самые заветные
цифры отвечающие за последовательность запуска:

# chkconfig: - 98 02


Где 98 это номер в последовательности запуска, а 02 это номер
последовательности останова.

То есть, проще говорят этот скрипт запуститься как 98мым в
последовательности очередей, а будет остановлен 2рым.

Теперь практикум.

Итак для того чтоб добавить скрипт и добавить его в автозагрузку надо
произвести следующую последовательность действий:

1. Создать исполняемый скрипт по шаблону приведёному выше, заменив
исполняемый_файл именем файла который надо запустить.

2. Разместить исполняемый скрипт в /etc/rc.d/init

3. Выполнить команду chkconfig --add исполняемый_скрипт

4. Выполнить команду setup или servicevonf (в зависимости от того
работвете вы в графическом режиме или консоле ) и выбрать службу которая
будет носить имя исполняемый_скрипт.

Ну вот наверное и всё, если я ни где не ошибся.
Записан

Уроки Phptoshop, Linux, Windows 7
   

 Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  



* Счетчики
Наша Кнопка

Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines | Sitemap
SimplePortal 2.3 © 2008-2009, SimplePortal