Безопасность и оптимизация Linux.Редакция для Red Hat

Конфигурация скрипта “/etc/rc.d/init.d/postgresql”


Настроим скрипт “/etc/rc.d/init.d/postgresql”, который будет отвечать за запуск и остановку PostgreSQL сервера.

Создадим скрипт postgresql (touch /etc/rc.d/init.d/postgresql) и добавьте в него следующие строки:

#! /bin/sh # postgresql Это инициализационный скрипт для запуска PostgreSQL сервера # # chkconfig: 345 85 15 # описание: запуск и остановка демона PostgreSQL, отвечающего за обработку # всех запросов к базе данных. # имя процесса: postmaster # pid файл: /var/run/postmaster.pid # # библиотека исходных функций. . /etc/rc.d/init.d/functions # Get config. . /etc/sysconfig/network # Поверка работает ли сеть. # это нужно для postmaster. [ ${NETWORKING} = "no" ] && exit 0 [ -f /usr/bin/postmaster ] exit 0 # Этот скрипт немного необычен тем, что имя демона (postmaster) # не совпадает с именем подсистемы (postgresql) # Смотрите, как мы осуществляем вызов. case "$1" in start) echo -n "Checking postgresql installation: " # Проверка структуры PGDATA if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ] then # Проверка версии существующие PGDATA if [ `cat /var/lib/pgsql/PG_VERSION` != '6.5' ] then echo "old version. Need to Upgrade." echo "See /usr/doc/postgresql-6.5.2/README.rpm for more information." exit 1 else echo "looks good!" fi # PGDATAне существуе! Нужно выполнить Initdb. else echo "no database files found." if [ ! -d /var/lib/pgsql ] then mkdir -p /var/lib/pgsql chown postgres.postgres /var/lib/pgsql fi su -l postgres -c '/usr/bin/initdb --pglib=/usr/lib/pgsql --pgdata=/var/lib/pgsql' fi # Проверка, запущен ли уже postmaster... pid=`pidof postmaster` if [ $pid ] then echo "Postmaster already running." else # все системы запущены – удаление старых блокирующих файлов rm -f /tmp/.s.PGSQL.* > /dev/null echo -n "Starting postgresql service: " su -l postgres -c '/usr/bin/postmaster -i -S -D/var/lib/pgsql' sleep 1 pid=`pidof postmaster` if [ $pid ] then echo -n "postmaster [$pid]" touch /var/lock/subsys/postgresql echo $pid > /var/run/postmaster.pid echo else echo "failed." fi fi ;; stop) echo -n "Stopping postgresql service: " killproc postmaster sleep 2 rm -f /var/run/postmaster.pid rm -f /var/lock/subsys/postgresql echo ;; status) status postmaster ;; restart) $0 stop $0 start ;; *) echo "Usage: postgresql {start|stop|status|restart}" exit 1 esac exit 0

Сейчас, мы должны сделать этот скрипт исполняемым и изменить права доступа к нему:

[root@deep /]# chmod 700 /etc/rc.d/init.d/postgresql

Создайте символическую rc.d ссылку для PostgreSQL следующей командой:

[root@deep /]# chkconfig --add postgresql

Запустите ваш новый PostgreSQL сервер вручную следующей командой:

[root@deep /]# /etc/rc.d/init.d/postgresql start Checking postgresql installation: looks good! Starting postgresql service: postmaster [22401]



Содержание раздела