3 # postgresql This is the init script for starting up the PostgreSQL
8 # description: Starts and stops the PostgreSQL backend daemon that handles \
9 # all database requests.
11 # processname: postmaster
12 # pidfile: /var/run/postmaster.pid
14 # Source function library
15 . /etc/rc.d/init.d/functions
18 . /etc/sysconfig/network
21 if [ -f /etc/sysconfig/postgresql ] ; then
22 . /etc/sysconfig/postgresql
24 ALLOW_TCP_CONNECTIONS=no
25 POSTGRES_DATA_DIR=/var/lib/psql
26 POSTGRES_LOG=/var/log/pgsql
29 # Check that networking is up.
30 if is_no "${NETWORKING}"; then
31 msg_Network_Down Postgresql
35 # See how we were called.
38 # Check if the service is already running?
39 if [ -f /var/lock/subsys/postgresql ]; then
40 msg_Already_Running PostgreSQL
43 [ -f /tmp/.s.PGSQL.5432 ] || rm -f /tmp/.s.PGSQL.5432
45 # Check for the PGDATA structure
46 if [ -f $POSTGRES_DATA_DIR/PG_VERSION ] && [ -d $POSTGRES_DATA_DIR/base/template1 ]; then
47 # Check version of existing PGDATA
48 if [ `cat $POSTGRES_DATA_DIR/PG_VERSION` != '7.0' ]; then
49 show "Databases created under incompatibile version. Migrate them first."; fail
53 # Create sample database
54 if [ ! -d $POSTGRES_DATA_DIR ]; then
55 mkdir -p $POSTGRES_DATA_DIR
56 chown postgres.postgres $POSTGRES_DATA_DIR
58 su postgres -c "LD_LIBRARY_PATH=/usr/lib \
59 initdb --pgdata=$POSTGRES_DATA_DIR \
60 --pglib=/usr/lib/pgsql"
63 msg_starting PostgreSQL
65 PGSQL_CMDLINE="$([ "$ALLOW_TCP_CONNECTIONS" = yes ] && echo "-i") \
66 $([ -n "$MAX_NUM_BACKENDS" ] && echo "-N $MAX_NUM_BACKENDS") \
67 $([ -n "$POSTGRES_DATA_DIR" ] && echo "-D $POSTGRES_DATA_DIR") \
68 $([ "$POSTGRES_QUIET". = yes. ] && echo '-o -Q') \
69 $([ "$POSTGRES_DISABLE_FSYNC". = yes. ] && echo '-o -F')";
70 su postgres -c "/usr/bin/postmaster $PGSQL_CMDLINE >>$POSTGRES_LOG 2>&1 &"
71 out=`status postmaster`
79 touch /var/lock/subsys/postgresql
82 if [ ! -f /var/lock/subsys/postgresql ]; then
83 msg_Not_Running PostgreSQL
86 msg_stopping postgreSQL
88 out=`status postmaster`
95 rm -f /var/run/postmaster.pid
96 rm -f /var/lock/subsys/postgresql
106 msg_Usage "$0 {start|stop|status|restart|reload}"