Can the client application be modified? It seems like it might need to be, since if it is expecting its connection to be open whenever it's running, the server killing the connection might lead it to crash.
I'm looking to solve a problem where a client application is leaving idle sessions open, eventually filling up the maximum connections and stopping anyone from connecting.
It seems like there's no way to disconnect sessions after a given idle timeout. There is a statement timeout, but that won't terminate the session.
Is there any way to disconnect a given session? In oracle you'd do something like "alter system kill session 'sid,serial#'". I've tried parsing the output of ps -efa to find out which postgres processes below to clients that should be disconnected, then sending them TERM or QUIT signals, but TERM has no effect and QUIT puts the whole database into recovery mode.