Linux: Поиск инициатора простаивающего процесса postgres - PullRequest
3 голосов
/ 30 ноября 2010

На самом деле я запускаю четыре программы-демона.Он устанавливает соединение postgres и один раз отключается с помощью материалов.Но когда я ставлю ps aux, в моей системе запускается много неактивных процессов.Я просто хочу знать, создатель каждого простоя postres процесса.Итак, чтобы я мог выяснить, какой процесс не закрывает соединение postgres должным образом.

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 01 декабря 2010

Используйте следующую команду

netstat -ntp

Она покажет идентификатор процесса и имя процесса создателя коннектора postgres.

2 голосов
/ 30 ноября 2010

Если вы используете postgresql 9.0, установите свойство «имя приложения» при подключении, чтобы вы могли различать, с каким клиентским процессом обращается каждый процесс сервера.Например (Perl):

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

Это будет включать PID клиента в имя приложения, что некрасиво, но эффективно.

Если вы подключаетесь по TCP / IP, тогда pg_stat_activity включает в себя клиентский порт, который вы можете использовать с lsof (или netstat -p) для поиска клиентского процесса.

0 голосов
/ 30 ноября 2010

См. Как подключить активных пользователей к базе данных postgreSQL через SQL?

, который может получить pid и uid связанных процессов

...