postgres.init.sh
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:4k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. #
  3. # postgres.init.sh - This script is used to start/stop 
  4. #                    the postgreSQL listener process.
  5. #
  6. # Usage
  7. #
  8. #   You can use this script manually, and/or you
  9. #   can install this script into the runlevel system
  10. #   by running "sh postgres.init.sh install"
  11. #
  12. # Credits
  13. #
  14. #   Thomas Lockhart <lockhart@alumni.caltech.edu>
  15. #   modified from other startup files in the
  16. #   RedHat Linux distribution
  17. #
  18. #   Clark Evans <cce@clarkevans.com>
  19. #   cleaned up, added comments, etc.
  20. # RedHat Stuff
  21. #
  22. #    chkconfig: 345 85 15
  23. #    description: Starts and stops the PostgreSQL backend daemon
  24. #                 that handles all database requests.
  25. #    processname: postmaster
  26. #    pidfile:     /var/run/postmaster.pid
  27. #
  28. # Note
  29. #
  30. #    This version can log backend output through syslog using
  31. #    the local5 facility. To enable this, set USE_SYSLOG to "yes"
  32. #    below and then edit /etc/syslog.conf to include a line
  33. #    similar to:
  34. #
  35. #       local5.*  /var/log/postgres
  36. #
  37. # Config Variables
  38. #
  39. PGACCOUNT="postgres"      
  40. #
  41. #  The non-root user account which will be used to run the
  42. #  PostgreSQL executeable.   For this script to work, the
  43. #  shell for this account must be SH/BASH.
  44. #
  45. #  The following lines should be in this account's .bash_profile
  46. #
  47. #  PATH=$PATH:$HOME/bin
  48. #  MANPATH=$MANPATH:/opt/pgsql/man
  49. #  PGLIB=/opt/pgsql/lib
  50. #  PGDATA=/opt/pgsql/data
  51. #
  52. POSTMASTER="postmaster"     
  53. #
  54. #  The executable program which is to be run, in this case
  55. #  it is the listener, which waits for requests on the port
  56. #  specified during configuration.
  57. USE_SYSLOG="yes"        
  58. #
  59. # "yes" to enable syslog, "no" to go to /tmp/postgres.log
  60. #
  61. FACILITY="local5"       
  62. #
  63. # can assign local0-local7 as the facility for logging
  64. #
  65. PGLOGFILE="/tmp/postgres.log"   
  66. #
  67. # only used if syslog is disabled
  68. #
  69. PGOPTS="" # -B 256
  70. #
  71. # The B option sets the number of shared buffers
  72. #
  73. # Add the "-i" option to enable TCP/IP sockets in addition
  74. # to unix domain sockets.  This is needed for Java's JDBC
  75. #
  76. # PGOPTS="-i"
  77. #
  78. # Add the -D option if you want to ovverride the PGDATA 
  79. # environment variable defined in
  80. #
  81. # PGOPTS="-D/opt/pgsql/data
  82. #
  83. # Add the -p option if you would like the listener to
  84. # attach to a port other than the one configured (5432?)
  85. #
  86. # PGOPTS="-D/opt/pgsql_beta/data -p 5433"
  87. #
  88. # Source function library.
  89. . /etc/rc.d/init.d/functions
  90. # Get config.
  91. . /etc/sysconfig/network
  92. #
  93. # Check that networking is up.
  94. # Pretty much need it for postmaster.
  95. #
  96. if [ ${NETWORKING} = "no" ]
  97. then
  98.     exit 0
  99. fi
  100. #[ -f /opt/pgsq//bin/postmaster ] || exit 0
  101. #
  102. # See how we were called.
  103. #
  104. case "$1" in
  105.   start)
  106.     if [ -f ${PGLOGFILE} ]
  107.     then
  108.         mv ${PGLOGFILE} ${PGLOGFILE}.old
  109.     fi
  110.     echo -n "Starting postgres: "
  111. #
  112. # force full login to get PGDATA and PGLIB path names
  113. # Since the login script for ${PGACCOUNT} is SH/BASH compliant, 
  114. # we use proper redirection syntax...
  115. #
  116.     if [ ${USE_SYSLOG} = "yes" ]; then
  117.         su - ${PGACCOUNT} -c "(${POSTMASTER} ${PGOPTS} 2>&1 | logger -p ${FACILITY}.notice) &" > /dev/null 2>&1 &
  118.     else
  119.         su - ${PGACCOUNT} -c "${POSTMASTER} ${PGOPTS} 2>>&1 ${PGLOGFILE} &" > /dev/null 2>&1 &
  120.     fi
  121.     sleep 5
  122.     pid=`pidof ${POSTMASTER}`
  123.     echo -n "${POSTMASTER} [$pid]"
  124. #   touch /var/lock/subsys/${POSTMASTER}
  125.     echo
  126.     ;;
  127.   stop)
  128.     echo -n "Stopping postgres: "
  129.     pid=`pidof ${POSTMASTER}`
  130.     if [ "$pid" != "" ] ; then
  131.         echo -n "${POSTMASTER} [$pid]"
  132.         kill -TERM $pid
  133.         sleep 1
  134.     fi
  135.     echo
  136.     ;;
  137.   install)
  138.     echo "Adding postgres to runlevel system."
  139.     cp $0 /etc/rc.d/init.d/postgres
  140.     /sbin/chkconfig --add postgres
  141.     echo
  142.     ;;
  143.   uninstall)
  144.     echo "Deleting postgres from runlevel system."
  145.     /sbin/chkconfig --del postgres
  146.     rm /etc/rc.d/init.d/postgres
  147.     echo
  148.     ;;
  149.   *)
  150.     echo "Usage: $0 {start|stop|install|uninstall}"
  151.     exit 1
  152. esac
  153. exit 0