Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

27.5. Configure the /etc/rc.d/init.d/postgresql script file

To start and stop PostgreSQL Server, create the postgresql script file, touch /etc/rc.d/init.d/postgresql and add:

               #! /bin/sh
               # postgresql    This is the init script for starting up the PostgreSQL
               #               server
               # chkconfig: 345 85 15
               # description: Starts and stops the PostgreSQL backend daemon that handles \
               #              all database requests.
               # processname: postmaster
               # pidfile: /var/run/postmaster.pid
               #
               # Source function library.
               . /etc/rc.d/init.d/functions
               # Get config.
               . /etc/sysconfig/network
               # Check that networking is up.
               # Pretty much need it for postmaster.
               [ ${NETWORKING} = "no" ] && exit 0
               [ -f /usr/bin/postmaster ] || exit 0
               # This script is slightly unusual in that the name of the daemon (postmaster)
               # is not the same as the name of the subsystem (postgresql)
               # See how we were called.
               case "$1" in
               start)
               echo -n "Checking postgresql installation: "
               # Check for the PGDATA structure
               if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
               then
               # Check version of existing 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
               # No existing PGDATA! Initdb it.
               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
               # Check for postmaster already running...
               pid=`pidof postmaster`
               if [ $pid ]
               then
               echo "Postmaster already running."
               else
               #all systems go -- remove any stale lock files
               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
             

Now, make this script executable and change its default permissions:
                 [root@deep] /# chmod 700  /etc/rc.d/init.d/postgresql
               
Create the symbolic rc.d links for PostgreSQL with the command:
                 [root@deep] /# chkconfig --add postgresql
               

Start your new PostgreSQL server manually with the following command:
                     [root@deep] /# /etc/rc.d/init.d/postgresql start
                   

                     Checking postgresql installation: looks good!
                     Starting postgresql service: postmaster [22401]
                   

 
 
  Published under the terms of the Open Publication License Design by Interspire