linux: поиск инициатора простаивающего процесса postgres

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

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


person Pavunkumar    schedule 30.11.2010    source источник


Ответы (3)


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

netstat -ntp

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

person Pavunkumar    schedule 01.12.2010

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

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

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

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

person araqnid    schedule 30.11.2010

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

который может получить pid и uid подключенных процессов

person Dan D.    schedule 30.11.2010
comment
Я думаю, что таблица показывает мне идентификатор процесса postres, а не создателя идентификатора процесса postgres. - person Pavunkumar; 30.11.2010
comment
stackoverflow.com/questions/464623/, кажется, говорит, что вы просите - person Dan D.; 30.11.2010