Thread
-
Failing to boot Postgres on Red Hat Linux
Matthew Green <matthewgreen@intelfax.co.uk> — 2000-08-31T16:00:28Z
Hello, Postmaster is not initializing when our Red Hat server is rebooting. We have followed what is stated in the manual with a slight modification to allow TCPIP connections. i.e. in the file /etc/inittab -----------------------------<SNIP>--------------------------------------------- # Run Postgres in standard runlevels pg:2345:respawn:/bin/su - postgres -c "/usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data >> /usr/local/pgsql/logs/server.log 2>&1 </dev/null" -----------------------------<EOF>--------------------------------------------- This seems to execute since if we introduce a deliberate error we get a warning on reboot. But with the line exactly as above we get no warnings, no server.log file is generated and the postmaster task is not visible if we run "ps -A" as root. Any help would be gratefully received including alternative methods of forcing Postgres to initialize on reboot. Many Thanks, Matthew Green Intelfax Limited, Lincoln House, 75 Westminster Bridge Road, London SE1 7HS 020 7902 5157
-
Re: Failing to boot Postgres on Red Hat Linux
Thomas Good <tomg@q8.nrnet.org> — 2000-08-31T16:25:37Z
On Thu, 31 Aug 2000, Matthew Green wrote: > Hello, > > Postmaster is not initializing when our Red Hat server is rebooting. > We have followed what is stated in the manual with a slight modification to allow TCPIP connections. > > i.e. > in the file /etc/inittab > > -----------------------------<SNIP>--------------------------------------------- > # Run Postgres in standard runlevels > > pg:2345:respawn:/bin/su - postgres -c "/usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data >> /usr/local/pgsql/logs/server.log 2>&1 </dev/null" > -----------------------------<EOF>--------------------------------------------- > > This seems to execute since if we introduce a deliberate error we get a warning on reboot. > But with the line exactly as above we get no warnings, no server.log file is generated and the postmaster task is not visible if we run "ps -A" as root. > Any help would be gratefully received including alternative methods of forcing Postgres to initialize on reboot. > > Many Thanks, > > Matthew Green Matthew, I use this line as printed on a slackware box except the port (5432) and the redirect at the end - on mine it is to (>) /dev/null and here you have it reversed. Is this simply a typo in your email? For RedHat: What follows is Lamar Owen's script (RedHat) for firing up PG. I simply place a call to it in rc.local so it starts on boot. (I keep my hacked copy of Lamar's file in /usr/local/bin, the original muzzled any logging output.) Note the rm -f of any stale locks. Here is the line that turns on logging... su -l postgres -c '/usr/bin/postmaster -i -D/var/lib/pgsql >> /var/lib/pgsql/postlog 2>&1 &' >/dev/null Cheers, Tom ---- Here is the script: #! /bin/sh # postgresql This is the init script for starting up the PostgreSQL # server # Version 6.5.2-0.2lo Lamar Owen # Added code to determine if PGDATA exists, whether it is current version # or not, and initdb if no PGDATA (initdb will not overwrite a database). # 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 -D/var/lib/pgsql >> /var/lib/pgsql/postlog 2>&1 &' >/dev/null 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 -------------------------------------------------------------------- SVCMC - Center for Behavioral Health -------------------------------------------------------------------- Thomas Good tomg@ { admin | q8 } .nrnet.org IS Coordinator / DBA Phone: 718-354-5528 Fax: 718-354-5056 -------------------------------------------------------------------- Powered by: PostgreSQL s l a c k w a r e FreeBSD: RDBMS |---------- linux The Power To Serve -------------------------------------------------------------------- -
Re: Failing to boot Postgres on Red Hat Linux
Tom Lane <tgl@sss.pgh.pa.us> — 2000-08-31T21:52:54Z
"Matthew Green" <Matthewgreen@intelfax.co.uk> writes: > pg:2345:respawn:/bin/su - postgres -c "/usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data >> /usr/local/pgsql/logs/server.log 2>&1 </dev/null" > This seems to execute since if we introduce a deliberate error we get a warning on reboot. > But with the line exactly as above we get no warnings, no server.log file is generated and the postmaster task is not visible if we run "ps -A" as root. Hmm. If the server.log file is not getting created, then the postmaster has never had a chance to start, because that file would be opened before the postmaster is exec'd from su. Two thoughts: (a) does user postgres have write permission on the directory /usr/local/pgsql/logs? (b) are you sure that your standard runlevel is one of 2,3,4,5? (see the init line in inittab) regards, tom lane