database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 4691 게시물 읽기
No. 4691
Re: [질문]pgaccess접속을 위한 postgresql start문 변경?
작성자
박병호(bhpark70)
작성일
2003-05-01 18:21
조회수
1,312

pg_ctl 메뉴얼을 무지하게 뚫어보니 답이 보였습니다.

 

su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -o -i -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null

 

-i를 그냥 쓰는게 아니라 -o와 함께 써야 합니다.

 

 

-- 박병호 님이 쓰신 글:

>> 밑 pgaccess로 postgresql에 접속하는 거에 대해서 여러번

>> 질문했었습니다.

>> 그리고 수동으로 postgresql을 시작할 때 -i 옵션을 주니까

>> pgaccess로 postgresql에 접속을 할 수 있었습니다.

>>

>> 그런데 문제는 리눅스 부팅할 때마다 수동으로 할 수는 없고

>> 원래 있던 postgresql 시작 스크립트를 수정할려고 하니

>> 잘 안됩니다.

>> /etc/rc.d/init.d 디렉토리에 있는 postgresql이라는 스크립트를

>> 열어서 start() 를 보니 다음과 같았습니다.

>>

>> start(){

>> PSQL_START=$"Starting postgresql service: "

>>

>> # Check for older PGDATA location.

>> if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]

>> then

>> export PGDATA=/var/lib/pgsql

>> else

>> export PGDATA=/var/lib/pgsql/data

>> fi

>>

>> # Check for the PGDATA structure

>> if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base ]

>> then

>> # Check version of existing PGDATA

>>

>> if [ `cat $PGDATA/PG_VERSION` != '7.2' ]

>> then

>> SYSDOCDIR="(Your System's documentation directory)"

>> if [ -d /usr/doc/postgresql-$PGVERSION ]

>> then

>> SYSDOCDIR=/usr/doc

>> fi

>> if [ -d /usr/share/doc/postgresql-$PGVERSION ]

>> then

>> SYSDOCDIR=/usr/share/doc

>> fi

>> if [ -d /usr/doc/packages/postgresql-$PGVERSION ]

>> then

>> SYSDOCDIR=/usr/doc/packages

>> fi

>> if [ -d /usr/share/doc/packages/postgresql-$PGVERSION ]

>> then

>> SYSDOCDIR=/usr/share/doc/packages

>> fi

>> echo

>> echo -e $"An old version of the database format was found.\nYou need to upgrade the data format before using PostgreSQL.\nSee $SYSDOCDIR/postgresql-$PGVERSION/README.rpm-dist for more information."

>> exit 1

>> # This doesn't seem to do anything useful...

>> # else

>> # if echo "$TYPESET"|grep "declare -f success ()" >/dev/null

>> # then

>> # success "$PSQL_CHECK"

>> # else

>> # echo " [ OK ]"

>> # fi

>> # echo

>> fi

>>

>> # No existing PGDATA! Initdb it.

>>

>> else

>> echo -n $"Initializing database: "

>> if [ ! -d $PGDATA ]

>> then

>> mkdir -p $PGDATA

>> chown postgres.postgres $PGDATA

>> fi

>> # Make sure the locale from the initdb is preserved for later startups...

>> [ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n $PGDATA/../initdb.i18n

>> # Just in case no locale was set, use en_US

>> [ ! -f /etc/sysconfig/i18n ] && echo "LANG=en_US" > $PGDATA/../initdb.i18n

>> # Is expanded this early to be used in the command su runs

>> echo "export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME" >> $PGDATA/../initdb.i18n

>> # Initialize the database

>> su -l postgres -s /bin/sh -c "/usr/bin/initdb --pgdata=/var/lib/pgsql/data > /dev/null 2>&1" < /dev/null

>> [ -f $PGDATA/PG_VERSION ] && echo_success

>> [ ! -f $PGDATA/PG_VERSION ] && echo_failure

>> echo

>> fi

>>

>> # Check for postmaster already running...

>> pid=`pidof -s 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 "$PSQL_START"

>>

>> =========================

>> su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null

>> ==========================

>>

>> sleep 1

>> pid=`pidof -s postmaster`

>> if [ $pid ]

>> then

>> success "$PSQL_START"

>> touch /var/lock/subsys/postgresql

>> echo $pid > /var/run/postmaster.pid

>> echo

>> else

>> failure "$PSQL_START"

>> fi

>> fi

>> }

>>

>> 스크립트는 잘 모르지만 뚫어지게 보면 ==== 표시 가운데가 결정적으로

>> postgresql을 시작하는 부분이고 요기에 -i 옵션을 주어야 할 것 같은데

>> 적당한데 -i 옵션을 넣으면 시작을 하지 않습니다.

>>

>> wrox 에서 나오는 beginning database with postgresql 을 보면

>>

>> su -l postgres -c "nohup /usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data 줄줄줄

>>

>> 이라고 나옵니다.

>>

>> 차이는 위에 pg_ctl을 사용했고 아래는 postmaster를 사용했는데

>> 이건 어떤 차이가 있는 건지 또 궁금하구요?

>>

>> 암튼 -i 옵션을 어떻게 넣으면 좋을까요?

[Top]
No.
제목
작성자
작성일
조회
4695[질문] insert 시에 이미 존재하는 값이라면 update 를 하고 싶을때.. [1]
김강린
2003-05-07
1413
4694[질문]php에서 db연결에러 [2]
이정호
2003-05-02
3758
4692[질문]postmaster가 실행할 때 pg_hba.conf?
박병호
2003-05-01
1568
4690[질문]pgaccess접속을 위한 postgresql start문 변경? [1]
박병호
2003-05-01
1438
4691┕>Re: [질문]pgaccess접속을 위한 postgresql start문 변경?
박병호
2003-05-01 18:21:48
1312
4693┕>Re: [질문]pgaccess접속을 위한 postgresql start문 변경? - (정답)
l4nuxer
2003-05-01 22:29:25
1585
4689웹호스팅 인트라넷 구축에 대한 질문입니다..
최강석
2003-04-30
1168
4688[질문]자료 복구 명령어 pg_restore ? [3]
대훈
2003-04-30
2907
4687[질문]postgresql 시작 과정이 어떻게 되지요? [2]
박병호
2003-04-29
1353
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다