Оценить:
 Рейтинг: 3.6

Linux

<< 1 ... 46 47 48 49 50 51 52 53 54 ... 57 >>
На страницу:
50 из 57
Настройки чтения
Размер шрифта
Высота строк
Поля
}

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 обеспечивает старт сервиса. При этом можно учесть особенности поведения демона. Перед стартом сервиса всегда делается проверка наличия его в системе. Так как появление дампа (дамп – моментальный снимок памяти, используемой зависшей программой на момент ее краха) памяти сервиса может привести к проблемам с безопасностью, то все демоны запускаются в режиме без создания дампа памяти.

Останов сервиса выполняется процедурой killproc. Данная функция предполагает один аргумент в виде имени демона и, при необходимости, еще один для указания сигнала, который будет послан сервису. Сигнал sigkill часто может быть нежелателен для останова сервиса, поэтому, если сигнал назначен, то используется только он, в противном случае сперва посылается sigterm и, если данный сигнал не произвел на процесс впечатления, то посылается сигнал sigkill. В последнюю очередь скрипт подчищает различные блокировочные файлы.

Функция status позволяет проверить текущее состояние сервиса. Если сервис нормально функционирует, то просто сообщается об этом факте. В противном случае осуществляется проверка на наличие флаговых файлов (/var/run/noflCHCTeMa.pid и /var/lock/subsys/подсистема), которые должны блокировать повторный запуск сервиса. Таким образом, несложно самому создать скрипт для управления сервисом.

rc.local

<< 1 ... 46 47 48 49 50 51 52 53 54 ... 57 >>
На страницу:
50 из 57

Другие электронные книги автора Алексей Александрович Стахнов