On 2/28/07, Scott Marlowe <smarlowe@g2switchworks.com> wrote:
> select procpid, usename, now()-query_start from pg_stat_activity where
> current_query like '%IDLE%' and now()-query_start > interval '5
> minutes';
>
> to list all the users that have been idle over the interval in the
> list. Using some kind of scripting language, you could then issue kill
> signals to those procpids.
There's always pg_cancel_backend().
http://www.postgresql.org/docs/8.2/static/functions-admin.html
So:
select pg_cancel_backend(procpid) from pg_stat_activity where
current_query = '<IDLE>' and now() - query_start > interval '5
minutes';
should work nicely. I've not really tested that properly though.