linux:找到postgres空闲进程的创建者

时间:2010-11-30 11:59:47

标签: linux postgresql ps

实际上,我正在运行四个守护程序。它使postgres连接,并且它与东西断开连接。但是当我使用ps aux时,我的系统中运行了很多postgres空闲进程。我只是想知道,每个空闲postres进程的创始人。所以,我可以找出哪个进程没有正确关闭postgres连接。

先谢谢。

3 个答案:

答案 0 :(得分:4)

使用以下命令

netstat -ntp

它将显示postgres连接器创建者的进程ID和进程名称。

答案 1 :(得分:2)

如果您使用的是postgresql 9.0,请在连接时设置“应用程序名称”属性,以便区分每个服务器进程正在与之通信的客户端进程。例如(Perl):

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

这将在应用程序名称中包含客户端PID,这很丑陋但有效。

如果您通过TCP / IP进行连接,则pg_stat_activity包含可与lsof(或netstat -p)一起使用的客户端端口,以查找客户端进程。

答案 2 :(得分:0)

请参阅How can you get the active users connected to a postgreSQL database via SQL?

可以获取已连接进程的pid和uid