Skip site navigation (1) Skip section navigation (2)

Re: Tareas en segundo plano

From: Jorge Servan <jservan(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Tareas en segundo plano
Date: 2011-09-20 21:16:12
Message-ID: CAEehbPHLqSf=wWm8+e3Vj4qowED8ubw+SHgZGjE_7uczQdcVGQ@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Si estuvieras en Linux, bastaría con anteponer a la orden que deseas
ejecutar en segundo plano con el programa "nohup".
Continuando con el jemplo:
nohup psql -U user -c "select * from pepe " basededatos &

Este programa, que suele ser un script sh, configura la señal SIGHUP para
ignorarla. Esta señal es normalmente recibida por todo proceso cuando la
terminal de control asociada. Se le puede indicar al Sistema Operativo que
ignore la señal, pero lo normal es no indicarlo. Dado que lo normal es
dejarla por defecto, y su acción por defecto es finalizar el programa,
entonces se obtiene que por defecto se cerrarán todos los programas que has
lanzado bajo una terminal. Para evitar el efecto, sin alterar el programa,
se emplea el programa "nohup". "nohup" configura la señal para ser ignorada
en el shell antes de la ejecución de la orden. Todas las órdenes que se
lancen heredarán el estado de la señal.

Indicar por último que la salidas del programa, a menos que se redirijan a
otro fichero, se volcarán sobre un fichero denominado nohup.out, que se
creará en el directorio actual desde donde se lanzo la orden.

Espero haber aportado un granito de arena.

se puede bien, alterar el programa (programanado o configurándolo) o bien
hacer que el proceso padre, que el programa las órdenes que se desean
lanzar, sean lanzadas  bajo un shell que ignora
 lo lance tenga ya configurado

El 20 de septiembre de 2011 22:46, Espartano <espartano(dot)mail(at)gmail(dot)com>escribió:

> 2011/9/20 Juan <smalltalker(dot)marcelo(at)gmail(dot)com>:
> > Hola
> >
> > Te expando la idea anterior que esta bien,
> > Linux si es que trabajas en linux tiene la capacidad de mandar tareas
> > encolando procesos en lo que se podria llamar background.
> >
> > basicamente cualquier comando al shell terminado con & se procesa en
> > background
> > (devuelve el control para el sig comando instantaneamente aunque el
> comando
> > tarde semanas).
> > entonces deberias
> >
> > psql -U user -c "select * from pepe " basededatos &
> > y listo!!
> > salu2
> > dmc
> >
>
> El tema es que para algunas versiones de Unix (no recuerdo si es el
> caso de linux) se mantiene un id de session, aparte del id del proceso
> (PID), id del grupo (GID), etc, etc, entonces cuando cierras tu
> terminal como el id de session esta ligado a ella, los procesos hijos
> de ese ID de session mueren, te repito no se si es el caso de linux,
> tendrían que comprobar antes de lanzar en background un proceso y
> esperar a que se este ejecutando por días.
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

In response to

Responses

pgsql-es-ayuda by date

Next:From: JuanDate: 2011-09-20 21:51:08
Subject: Re: Tareas en segundo plano
Previous:From: Juan Manuel Acuña BarreraDate: 2011-09-20 21:11:15
Subject: Re: Tareas en segundo plano

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group