Emanuel Calvo Franco escribió:
> El día 14 de abril de 2009 15:46, Alvaro Herrera
> <[email protected]> escribió:
> >
> > create or replace function pg_terminate_backend(int) returns int
> > language plperlu as $$
> >        $pid = shift;
> >        $ret = kill TERM, $pid;
> >        elog WARNING, "could not send signal TERM to $pid: $!" unless $ret 
> > == 1;
> >        return $ret;
> > $$;
> 
> Vos sabes que hice esta función y no mata la sesión...

Bueno, obviamente no es la misma función, porque la mía funciona :-)  No
estoy usando system(), que la hace muy lenta y algo peligrosa en mi
opinión, sino una llamada kill() directamente.

En todo caso lo de arriba no es más que un esbozo; falta agregar las
protecciones para que la función no mate su propia sesión, y otra que
sólo permita enviar señales a procesos backends.

> De todas maneras lo que se me ocurre que se puede crear el script y
> llamarlo con la función system.

Cada vez que veo a alguien escribiendo código con system() mi opinión es
"ugh".

-- 
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"Ed is the standard text editor."
      http://groups.google.com/group/alt.religion.emacs/msg/8d94ddab6a9b0ad3
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a