[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Duda sobre nohup



El 24/04/06, Luis Rodrigo Gallardo Cruz<rodrigo@nul-unu.com> escribió:
> On Tue, Apr 25, 2006 at 12:05:14AM +0200, Iñaki wrote:
> > ¿Cómo puedo hacer un "nohup" a todo eso? ¿funcionaría sólo con lo siguiente?
> >
> >     nohup  cat archivo.txt | sed '...bla bla bla....' | scrip    &
>
> No, no funciona. Eso corre 'cat archivo txt' bajo nohup y manda la
> salida de _eso_ a sed.
>
> > ¿o debo meter paréntesis?
>
> Tampoco.
>
> A ver si me explico: Cuando le das la línea de comandos al shell, éste
> la divide en 'componentes de pipe', ejecuta cada uno conectandolos
> adecuadamente, y espera a que terminen o regresa inmediatemente según
> si le diste '&'.
>
> En el caso que pones, los componentes del pipe son:
>
> 1. nohup cat archivo.txt
> 2. sed '..bla...bla'
> 3. scrip
>
> Por eso ejecuta nada mas el cat bajo nohup. El problema es que el
> shell ve la linea _antes_ que nohup.
>
> Si le pones parentesis lo que el shell ve es:
>
> nohup (un pipe que hay que ejecutar) &
>
> Y eso es un error de sintáxis, por que 'un pipe' no es un argumento
> válido para un comando, los argumentos son _textos_
>
> Entonces, lo que necesitas es agrupar todo el comando _como texto_ y
> pasarselo así a nohup. Primera idea:
>
> nohup 'cat archivo.txt| etc.etc' &
>
> Pero esto tampoco funciona, por que entonces nohup busca en el path
> para tratar de ejecutar un comando que se llama
>   'cat archivo.txt| etc.etc',
> lo cual obviamente no existe.
>
> Entonces, lo que necesitamos es un programa que sepa interpretar una
> linea de comandos de shell, para que la parta en los pedazos
> adecuados, y ejecutar _ese_ programa bajo nohup.
>
> (pensando, pensando, ...) ¡El shell!
>
> nohup sh -c 'cat archivo.txt| etc.etc' &
>
> Eso, me consta, funciona como quieres.
>
> --
> Rodrigo Gallardo            PGP Key ID:  ADC9BC28
> Fingerprint: 7C81 E60C 442E 8FBC D975  2F49 0199 8318 ADC9 BC28
> http://www.nul-unu.com      http://www.nul-unu.com/blogs/elucubrando
>

Clap, clap, clap. No se si le funcione al listero de la consulta, pero
que soberbia respuesta. Que manera de responder.
Marcos Delgado.



Reply to: