28.4.3. Инсталляция сценария уровня выполнения
28.4.3. Инсталляция сценария уровня выполнения
Чтобы инсталлировать собственный сценарий rc.script, следует выполнить следующее:
• написать сценарий, который действительно удовлетворяет стандартам вызова;
• удостовериться, что сценарий действительно запускает или останавливает необходимую службу;
• разместить сценарий (в зависимости от системы( в каталоге /etc/init.d, /usr/sbin/init.d или в каталоге /etc/rc.d;
• cоздать ссылки во всех подходящих каталогах rcN.d, используя соответствующее соглашение о наименовании.
Ниже приводится сценарий, который запускает и прекращает выполнение приложения под названием rc.audit- Эта служба запускается на уровнях выполнения 3, 5 и 4 и уничтожается на уровнях выполнения 6, 2 и 1. При просмотре некоторых записей в каталогах rcN.d число 35 является зарезервированным, поэтому оно применяется в данном случае. Действительно, нет причин прекращать функционирование сценария, поэтому применяется число, которое уже использовалось.
Рассмотрим этот сценарий. Как можно заметить, простая конструкция case выполняет перехват параметров stop и start.
$ pg rc.audit
#!/bin/sh
#rc.audit start | stop
#сценарий запускает или прекращает выполнение
#контролирующего приложения zeega
#
case "$1" in
start)
echo -n "Starting the audit system…."
/apps/audit/audlcp -a -p 12
echo
touch /var/lock/subsys/rc.audit
;;
stop)
echo -n "Stopping the audit system…."
/apps/audit/auddown -k0
echo
rm -f /var/lock/subsys/rc.audit
;;
restart)
$0 stop
$0 start
;;
*)
echo "To call properly..Usage: $0 {start | stop | restart}"
exit 1
;;
esac
exit 0
В Limix…
В некоторых вариантах Linux предполагается, что файл блокировки создается при запуске службы. Если файл блокировки отсутствует, при уничтожении сценариев могут возникнуть трудности.
Опция start вызывает контрольный процесс, который запускает действительную систему контроля, а опция stop вызывает сценарий, останавливающий систему контроля. Конечно, перед помещением сценария в каталог init.d его следует проверить.
$ rc.audit
То call properly..Usage:./rc.audit {start|stop|restart}
$ rc.audit start
Starting the audit system….
Предположим, что сценарий проверен. Запуск и прекращение функционирования службы контроля реализуется без затруднений. Установим связь сценария с нужными каталогами выполнения.
В данной системе каталоги rcN.d помешены в файл /etc/rc.d, а сценарии rc.scripts помещены в файл /etc/rc.d/init.d. Измените пути, если это необходимо.
Внимательно приступайте к первоначальному запуску сценария; не забывайте, что запуск сценариев начинается с указания опции s.
$ pwd
/etc/rc.d/rc3.d
$ ln -s ../init.d/rc.audit S35rc.audit
$ ls -1
lrwxrwxrwx 1 root root 27 May 8 14:37 S35rc.audit -> ../init.d/rc.audit
Теперь создается ссылка. Поток вывода команды ls -l, который показывает ссылку, направляется в файл /etc/init.d/rc.audit. Как часть команды ссылки, поддерживается путь ко всему каталогу, но это не обязательно. Теперь необходимо применить команду cd для последовательного перехода во все каталоги, где нужно запустить службу (в данном случае rc4.d и rc5.d), и выполнить в них аналогичные действия. Для уничтожения сценариев примените следующие команды:
$ pwd
/etc/rc.d/rc6.d
$ ln -s ../init.d/rc.audit K35rc.audit
$ ls -l
lrwxrwxrwx 1 root root 27 May 8 14:43 K35rc.audit -> ../init.d/rc.audit
Аналогичную процедуру можно реализовать для других каталогов, где нужно остановить выполнение службы контроля. Теперь при перезагрузке системы служба контроля прекращает выполняться. Это происходит и в том случае, когда значения уровней выполнения изменяются на 2 или 1. Служба контроля запускается, если значение уровня выполнения изменяется на 4 или 5.