Название | Linux |
---|---|
Автор произведения | Алексей Стахнов |
Жанр | ОС и Сети |
Серия | В подлиннике. Наиболее полное руководство |
Издательство | ОС и Сети |
Год выпуска | 2002 |
isbn | 5-94157-146-1 |
Рис. 6.1. Программа ntsysv
Рис. 6.2. Программа Control-panel
Можно сконфигурировать набор доступных сервисов и вручную. Для запрета старта какого-либо сервиса достаточно просто удалить соответствующую ссылку (SXXlalala) из необходимого каталога /rcX.d, а для разрешения – создать соответствующую ссылку в нужном каталоге /rcX.d. Однако не следует забывать помимо стартовой ссылки создавать стоповую, иначе возможны проблемы, когда система некорректно завершит функционирование сервиса, для которого забыли создать стоповую ссылку. А как же корректно установить порядковый номер у соответствующей ссылки? Конечно, можно чисто эмпирически подобрать номер, исходя из функций, выполняемых сервисом. Но давайте заглянем в любой файл в каталоге /etc/rc.d/init.d/, к примеру, в файл anacron:
#!/bin/sh
# Startup script for anacron
# chkconfig: 2345 95 05
# description: Run cron jobs that were left out due to downtime
# Source function library.
. /etc/rc.d/init.d/functions
[-f /usr/sbin/anacron] || exit 0
prog="anaсron"
start () {
echo -n $"Starting $prog: "
daemon anacron
RETVAL=$?
[$RETVAL – eq 0] && touch /var/lock/subsys/anacron
echo
return $RETVAL
}
stop() {
if test "x" pidof anacron""!= x; then
echo -n $"Stopping $prog:»
killproc anacron
echo
fi
RETVAL=$?
[$RETVAL – eq 0] && rm -f /var/lock/subsys/anacron
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status anacron
;;
restart)
stop
start
;;
condrestart)
if test "x" pidof anacron""!= x; then
stop
start
fi
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit 0
###################################################################
Обратите внимание на часть заголовка файла:
#!/bin/sh
# Startup script for anacron
# chkconfig: 2345 95 05
# description: Run cron jobs that were left out due to downtime
Помимо указания, какой командной оболочкой необходимо воспользоваться, там есть строчка
# chkconfig: 2345 95 05
Из которой следует, что этот скрипт может использоваться во втором, третьем, четвертом и пятом уровнях выполнения, а цифры 95 и 05 – порядковый номер для стартового (95) и стопового (05) скриптов. Обратите внимание – в сумме эти две цифры составляют 100. Таким образом, достаточно просто добиться того, чтобы порядок останова сервисов был в точности обратный стартовому. Description в данном файле – комментарий, который linuxconf выдает на экран для объяснения роли данного сервиса.
Если внимательно посмотреть скрипт, то сразу видно, что опций у него больше, чем стандартные start и stop. Имеются еще restart, condrestart и status. Старт, останов и проверка состояния демона выполняются рядом функций типа daemon, killproc, status. Процедуры daemon, killproc, status – определяются в файле /etc/rc.d/init.d/functions (а тот пользуется определениями из /etc/sysconfig/init). Они предназначены для старта, останова и проверки статуса демона (сервиса).
Функция daemon обеспечивает старт сервиса. При этом можно учесть особенности