🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #13927

Re: Hacer qeu dos procesos se esperen, mientras otros se ejecutan.

#13927
From: J.A. Gutierrez
Date: Wed, 03 Jan 2001 09:54
82 lines
2856 bytes
Han Solo <hsolo@escomposlinux.org> wrote:
: -----BEGIN PGP SIGNED MESSAGE-----
: Hash: SHA1


: Hola a todos. Tengo una dudilla de bash. Tengo el siguiente fichero,
: en /etc/ppp/ip-up.d

: #!/bin/bash

: exec /usr/sbin/sendmail -q &

    mania del exec...

$ cat mierda
#!/bin/bash

echo $$
exec sleep 10 &
wait
sleep 11 &
wait

$ pstree

 | \-+- 12341 spd -ksh
 |   \-+- 12613 spd /bin/bash ./mierda
 |     \--- 12614 spd sleep 10


$ pstree

 | \-+- 12341 spd -ksh
 |   \-+- 12613 spd /bin/bash ./mierda
 |     \--- 12635 spd sleep 11


    Es decir, mismo resultado con y sin exec.

    solo se me ocurre dos usos validos de exec en un script: para
    construcciones tipo

#!/bin/sh

exec > log 2 > err
cmd1
cmd2
...

    o para ejecutar el ultimo comando del script (si, p.e. el
    script es un wrapper para otro programa)


: (exec /usr/sbin/baja-news -dirconf cis-dfn>/home/hsolo/noticias 2>&1 ;\
:   exec /usr/sbin/baja-news -dirconf antakira>>/home/hsolo/noticias 2>&1) &

    Es decir, en el subshell entre parentesis, el primer exec se
    ejecuta, reemplazandolo; por lo que logicamente no queda shell
    que lance el segundo comando:

          exec [-cl] [-a name] [command [arguments]]
               If command is specified, it replaces the shell.  No new
               process is created.  The arguments become the arguments

    Lo mismo ocurre si haces un

    exec sleep 10
    en el ejemplo de arriba en lugar de un

    exec sleep 10 &
    wait


    Lo dicho: cepillate todos esos exec que no te dan ninguna ventaja
    y si muchos problemas...


-- 
PGP and othe useless info at      \                 La ciencia-ficcion es
http://www.cps.unizar.es/~spd/      \                 ese futuro en el que
finger://daphne.cps.unizar.es/spd    \                 lo seguro es que ya
ftp://ivo.cps.unizar.es/pub/          \    (F. Alfaro)  no seremos jovenes
Technical Details
Message-ID: <92uss5$dn6$1@news.unizar.es>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!logbridge.uoregon.edu!news.rediris.es!news.unizar.es!not-for-mail
References: <87snn13ahz.fsf@alderaan.maptel.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII-7-bit
X-Google-Thread: f86c8,68e86b684738b52
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-01-03 01:46:02 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!logbridge.uoregon.edu!news.rediris.es!news.unizar.es!not-for-mail
From: "J.A. Gutierrez" <spd@daphne.cps.unizar.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Hacer qeu dos procesos se esperen, mientras otros se ejecutan.
Date: 3 Jan 2001 09:54:13 GMT
Organization: Rank
Lines: 82
Message-ID: <92uss5$dn6$1@news.unizar.es>
References: <87snn13ahz.fsf@alderaan.maptel.es>
NNTP-Posting-Host: daphne.cps.unizar.es
X-Trace: news.unizar.es 978515653 14054 155.210.152.20 (3 Jan 2001 09:54:13 GMT)
X-Complaints-To: usenet@news.unizar.es
NNTP-Posting-Date: 3 Jan 2001 09:54:13 GMT
User-Agent: tin/1.4.4-20000803 ("Vet for the Insane") (UNIX) (IRIX/6.2 (IP22))