Thread: getting pid of backend

getting pid of backend

From
Kovacs Zoltan
Date:
Is there a way to read the pid of the actual backend from SQL? I know a
dirty workaround: 

setting debug=2, log_pid=yes in postgresql.conf;

writing a function doing this:

executing a 'SELECT a_generated_random_number';
while not found pidreading from the postmaster log waiting for a_generated_random_number.

Is there an easier method?

--                         Kov\'acs, Zolt\'an                        kovacsz@pc10.radnoti-szeged.sulinet.hu
          http://www.math.u-szeged.hu/~kovzol                        ftp://pc10.radnoti-szeged.sulinet.hu/home/kovacsz
 




Re: getting pid of backend

From
"Josh Berkus"
Date:
Kovacs,

> Is there an easier method?

Much easier.  Take a look at $PGDATA/postmaster.pid

-Josh


Re: getting pid of backend

From
Kovacs Zoltan
Date:
On Tue, 5 Mar 2002, Josh Berkus wrote:

> Kovacs,
> 
> > Is there an easier method?
> 
> Much easier.  Take a look at $PGDATA/postmaster.pid

I mean the current pid number of the actual connection. Not the postmaster
process, I need the pid of the currently running postgres. :-)

Regards,                        Kov\'acs, Zolt\'an                        kovacsz@pc10.radnoti-szeged.sulinet.hu
               http://www.math.u-szeged.hu/~kovzol
ftp://pc10.radnoti-szeged.sulinet.hu/home/kovacsz



Re: getting pid of backend

From
Bruce Momjian
Date:
Kovacs Zoltan wrote:
> On Tue, 5 Mar 2002, Josh Berkus wrote:
> 
> > Kovacs,
> > 
> > > Is there an easier method?
> > 
> > Much easier.  Take a look at $PGDATA/postmaster.pid
> 
> I mean the current pid number of the actual connection. Not the postmaster
> process, I need the pid of the currently running postgres. :-)

You are going to love this one:test=> create function getpid() returns int as '/shlib/libc.so',        'getpid'
languagec;CREATEtest=> select getpid(); getpid --------   2971(1 row)
 

You may need to modify the libc.so path.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: getting pid of backend

From
Tom Lane
Date:
Kovacs Zoltan <kovacsz@pc10.radnoti-szeged.sulinet.hu> writes:
> I mean the current pid number of the actual connection. Not the postmaster
> process, I need the pid of the currently running postgres. :-)

I don't believe it's available as a SQL query, but libpq can tell you
what it is.

Probably a more interesting question is "why do you want to know?".
I can't offhand think of a really good reason to use the backend pid
for anything on the client side, other than distinguishing self-notifies
from other notifies, which is not something you can do at the SQL level
anyway.
        regards, tom lane


Re: getting pid of backend

From
Laszlo Tibor
Date:
> Kovacs Zoltan <kovacsz@pc10.radnoti-szeged.sulinet.hu> writes:
> > I mean the current pid number of the actual connection. Not the
> postmaster
> > process, I need the pid of the currently running postgres. :-)
>
> I don't believe it's available as a SQL query, but libpq can tell you
> what it is.
>
> Probably a more interesting question is "why do you want to know?".
> I can't offhand think of a really good reason to use the backend pid
> for anything on the client side, other than distinguishing self-notifies
> from other notifies, which is not something you can do at the SQL level
> anyway.
>
>             regards, tom lane

We need the backend's pid in the backend side. The backend's pid is good to
figure out the client ip address and good for logging.

We need to log the connections and the Win32 exe-s to determine the
ownership relations between backends and programs. Unfortunately, there are
backends without programs, eating server resources in our production system.

Plus we need to connect the logs to existing user and system dictionary data
in the database so we want to log into database tables.

Do you think it's a silly thing?


Regards, Tibor Laszlo
ltibor@mail.tiszanet.hu