반응형

/********************************************************************************************
-- Title : [9.2] Service postgres 등록 스크립트
 
-- Reference : 웹검색
 
-- Key word : /etc/init.d service postgres 
********************************************************************************************/


-- 스크립트 생성
    # vi /etc/init.d/postgres

#!/bin/bash 

# chkconfig:2345 90 20 

  

# Installation prefix 

prefix=/home/postgres/pgsql

  

# Data directory 

PGDATA="$prefix/data" 

  

# Who to run the postmaster as, usually "postgres". (NOT "root") 

PGUSER=postgres 

  

# Where to keep a log file 

PGLOG="$prefix/serverlog" 

  

## STOP EDITING HERE 

  

# Check for echo -n vs echo \c 

if echo '\c' | grep -s c >/dev/null 2>&1 ; then 

        ECHO_N="echo -n" 

        ECHO_C="" 

else 

        ECHO_N="echo" 

        ECHO_C='\c' 

fi 

  

# The path that is to be used for the script 

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

  

# What to use to start up the postmaster (we do NOT use pg_ctl for this, 

# as it adds no value and can cause the postmaster to misrecognize a stale 

# lock file) 

DAEMON="$prefix/bin/postmaster" 

  

# What to use to shut down the postmaster 

PGCTL="$prefix/bin/pg_ctl" 

  

set -e 

  

# Only start if we can find the postmaster. 

test -x $DAEMON || exit 0 


# Parse command line parameters. 

case $1 in 

        start) 

                $ECHO_N "Starting PostgreSQL: "$ECHO_C 

                su - $PGUSER -c "$DAEMON -i -D $PGDATA" >>$PGLOG 2>&1 & 

                echo "ok" 

                ;; 

        stop) 

                echo -n "Stopping PostgreSQL: " 

                su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" 

                echo "ok" 

                ;; 

        restart) 

                echo -n "Restarting PostgreSQL: " 

                su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" 

                su - $PGUSER -c "$DAEMON -D $PGDATA" >>$PGLOG 2>&1 & 

                echo "ok" 

                ;; 

        reload) 

                echo -n "Reload PostgreSQL: " 

                su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" 

                echo "ok" 

                ;; 

        status) 

                su - $PGUSER -c "$PGCTL status -D '$PGDATA'" 

                ;; 

        *) 

                # Print help 

                echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2 

                exit 1 

                ;; 

esac 


exit $? 



-- 실행 권한 부여
    # chmod 755 /etc/init.d/postgres

-- 수행
    # service postgres [start | stop | restart | reload]








반응형

+ Recent posts