Базы данных - ЛИНТЕР - статьи



Листинг 2


#################################################### #!/bin/sh

#Включаем файл с описанием переменных LINTER_BIN=/linter/bin . $LINTER_BIN/constants

#И файл с паролем . $LINTER_BIN/private_passwd

#NET_MBX=1458 #Любой не используемый в дальнейшем #export NET_MBX #Проверяем не запущен ли сервер $LINTER_BIN/chklinter -u $USER'/'$PASSWORD if [ $? -ne 0 ]; then echo "Linter already runnig" exit 1 fi

#Проверяем наличие каталога блокировочного файла if [ ! -d $SY00/lock ]; then mkdir $SY00/lock #создаем каталог if [ $? -ne 0 ];then echo "Error create locking directory" exit 1; fi fi

#Проверяем наличие блокировочного файла if [ -f $SY00/lock/lock ];then echo "Linter not correct shutdown" exit 1 fi

#стартуем SQL сервер $LINTER_BIN/linter /BASE=$SY00 /POOL=$POOL /SPOOL=$SPOOL

#ждем 60 сек запуска ЛИНТЕРа $LINTER_BIN/chklinter -u $USER'/'$PASSWORD -t 60 if [ $? -eq 0 ]; then echo "Error Running linter" exit 1 fi

#Создаем блокировочный файл touch $SY00/lock/lock if [ $? -ne 0 ]; then echo "Error create locking file" exit 1 fi

#Синхронизируем файловый кеш ОС с диском sync

#стартуем сетевой сервер $LINTER_BIN/dbs_tcp /P=$PORT ####################################################

В этой программе использовано несколько дополнительных программ из дистрибутива СУБД ЛИНТЕР и несколько технических приемов. Рассмотрим работу этого файла подробнее.

После включения описанных выше файлов – constants и privare_passwd, производится проверка наличия запущенной копии ядра с тем же LINTER_MBX, что и указанный в нашей программе. Это делается с помощью программы chklinter. Аргументы этой программы берутся из private_passwd. Если программа вернула код завершения 0, то ЛИНТЕР уже запущен. В противном случае – нет.

В данной shell-программе применяется механизм блокировки для предотвращения запуска базы данных в случае некорректного завершения (ниже будет приведена программа, завершающая работу СУБД, она удаляет блокировочный файл).




Содержание  Назад  Вперед