3

実際、私は 4 つのデーモン プログラムを実行しています。それはpostgres接続を行い、スタッフと一緒に一度切断します。しかし、私が ps aux を入れているとき、システムで実行されているpostgresアイドルプロセスがたくさんあります。知りたいのは、各アイドル状態の postres プロセスの作成者です。それで、どのプロセスがpostgres接続を適切に閉じていないかを知ることができました。

前もって感謝します 。

4

3 に答える 3

4

次のコマンドを使用します

netstat -ntp

postgres コネクタ作成者のプロセス ID とプロセス名が表示されます。

于 2010-12-01T09:53:16.640 に答える
2

postgresql 9.0 を使用している場合は、接続時に「アプリケーション名」プロパティを設定して、各サーバー プロセスがどのクライアント プロセスと通信しているかを区別できるようにします。例 (Perl):

$dbh = DBI->connect("dbi:Pg:application_name=test/$$", undef, undef)

これにより、アプリケーション名にクライアント PID が含まれます。これは見苦しいですが効果的です。

TCP/IP 経由で接続している場合は、クライアント プロセスを検索するために(または)pg_stat_activityで使用できるクライアント ポートが含まれます。lsofnetstat -p

于 2010-11-30T16:24:42.360 に答える
0

アクティブ ユーザーを SQL 経由で postgreSQL データベースに接続するにはどうすればよいですか? を参照してください。

接続されたプロセスの pid と uid を取得できる

于 2010-11-30T12:03:47.153 に答える