実際、私は 4 つのデーモン プログラムを実行しています。それはpostgres接続を行い、スタッフと一緒に一度切断します。しかし、私が ps aux を入れているとき、システムで実行されているpostgresアイドルプロセスがたくさんあります。知りたいのは、各アイドル状態の postres プロセスの作成者です。それで、どのプロセスがpostgres接続を適切に閉じていないかを知ることができました。
前もって感謝します 。
実際、私は 4 つのデーモン プログラムを実行しています。それはpostgres接続を行い、スタッフと一緒に一度切断します。しかし、私が ps aux を入れているとき、システムで実行されているpostgresアイドルプロセスがたくさんあります。知りたいのは、各アイドル状態の postres プロセスの作成者です。それで、どのプロセスがpostgres接続を適切に閉じていないかを知ることができました。
前もって感謝します 。
次のコマンドを使用します
netstat -ntp
postgres コネクタ作成者のプロセス ID とプロセス名が表示されます。
postgresql 9.0 を使用している場合は、接続時に「アプリケーション名」プロパティを設定して、各サーバー プロセスがどのクライアント プロセスと通信しているかを区別できるようにします。例 (Perl):
$dbh = DBI->connect("dbi:Pg:application_name=test/$$", undef, undef)
これにより、アプリケーション名にクライアント PID が含まれます。これは見苦しいですが効果的です。
TCP/IP 経由で接続している場合は、クライアント プロセスを検索するために(または)pg_stat_activity
で使用できるクライアント ポートが含まれます。lsof
netstat -p
アクティブ ユーザーを SQL 経由で postgreSQL データベースに接続するにはどうすればよいですか? を参照してください。
接続されたプロセスの pid と uid を取得できる