From: | Steve Crawford <scrawford(at)pinpointresearch(dot)com> |
---|---|
To: | Dima Tkach <dmitry(at)openratings(dot)com>, Travis Hume <travis(dot)hume(at)tenzing(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org, Breck Thomas <Breck(dot)Thomas(at)tenzing(dot)com> |
Subject: | Re: need a method to ping a running database |
Date: | 2003-06-12 17:18:27 |
Message-ID: | 200306121018.27880.scrawford@pinpointresearch.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
So try:
`psql -d database -h server -c "select 'It is running'" 2>/dev/null | grep -c
"It is running"`
Though I don't think the "ERROR: database is staring up" is an incorrect error
as it still means that the database is not ready to handle queries. Still, I
think it's safer to look for the existence of expected results that the
absence of specific error messages.
Cheers,
Steve
On Wednesday 11 June 2003 6:42 pm, Dima Tkach wrote:
> What about
>
> down= \
> `psql -d database -h server -c 'select 1;' 2>&1 | grep -c '^ERROR'`
>
> ?
>
> Dima.
>
> P.S. One thing to be cautious about is that if it has just been started,
> you'll get something like 'ERROR: The database is starting up.', that
> will get counted as an error (probably incorrectly)... So, the real
> implementation has to be a little more elaborate then that to be able to
> catch and handle that situation...
>
> Travis Hume wrote:
> > I need a shell scriptable method to determine if a postgresql database
> > is running and accepting connections.
> >
> > I've written a script to start out postgresql database and I was using:
> > "pg_ctl status"
> >
> > to determine if the database had been started. There are a couple of
> > problems with this method. It seems that if you start postgresql and
> > then issue a "kill -9" on the postmaster processes a .pid file is left
> > behind (understandable), but then if you run "pg_ctl status" it will
> > immediately report that the database is running and give you the pid
> > number and whatever else. This is a bit misleading to say the least.
> > To solve this problem I changed my db_ping() function to be more like
> > "ps ax |grep -q postmaster && pg_ctl status". This works better, but
> > there is still a problem.
> >
> > The .pid file is being written immediately, not when the database is
> > actually up and accepting connections. This causes my java app to try
> > and open the database and setup a connection pool before it should.
> >
> > I need a shell scriptable method to determine if the database is started
> > and ready to accept connections.
> >
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitry Tkach | 2003-06-12 17:29:19 | Re: need a method to ping a running database |
Previous Message | Erik Price | 2003-06-12 17:14:59 | LAST_INSERT_ID equivalent |