[pgsql-jp: 27851] Re: バックエンドのプロセスIDを取得したい

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 10月 31日 (木) 10:31:25 JST


  杉田です。

From: Jun Kitamura <kitamura @ zoozee.jp>
Subject: [pgsql-jp: 27848] バックエンドのプロセスIDを取得したい
Date: Thu, 31 Oct 2002 03:10:47 +0900

;;; pg_stat_get_backend_pid(int4) でバックエンドの PID は出るの
;;; ですが、いかんせん、引数に入れる数字がわかりません。引数に入
;;; るべく数値は、pg_stat_get_backend_idset() によりリストが得ら
;;; れますが、「どの数字が自分なの?」という問題にぶちあたりまし
;;; た。

  「どの数字が自分なの?」のために、こうしました。

    #include "postgres.h"
    #include "fmgr.h"
    #include "backendid.h"

    PG_FUNCTION_INFO_V1(pg_get_beid);

    Datum pg_get_beid(PG_FUNCTION_ARGS)
    {
	PG_RETURN_INT32(MyBackendId);
    }

;;; 数値が違うだけで、より汎用的な(無かったけど) current_pid() 
;;; を探しはじめてしまったのが失敗でした。
;;; でも、ほんとはこっちのやり方の方が欲しいですけどね。

  7.3 では、関数が増えています。

    =# select pg_backend_pid();
     pg_backend_pid 
    ----------------
	      14227
    (1 row)

    =# 

  contrib/miscutil/misc_utils.c に古い形式の関数定義で pid 返すのがあります。 


Kenji Sugita                                      





pgsql-jp メーリングリストの案内