On 4/18/06, Jordi Espasa Clofent
Por ejemplo, no dejar colgando una inútil sesión bash al ejecutar un programa.
Mmmmmm... hoy estoy espeso. Ponme un ejemplo, please.
/*Repito un mail de otra lista que preguntaron lo mismo Lista del GRULIC*/ esto tiene que ver con que si lanzás un programa desde un script bash, se crea un proceso nuevo hijo del bash que está interpretando el script. basicamente quedan los dos corriendo. claro que el script en bash está `de más´, ocupando recursos al pedo (salvo que tengas que hacer un cleanup después de correr tu programa). exec en cambio *reemplaza8 el proceso que corre el script pot el programa que vos querés, dejando finalmente sólo un proceso (el nuevo) corriendo. estas cosas las podés ver si ejecutás estes script (long line following): --- cut here --- #! /bin/bash firefox & read # acá se queda esperando que uno apriete enter # ir a potra consola y ver la salida de `ps fux´ # se ven unas líneas como: # sferro 3632 0.0 0.8 5000 2132 ttyp3 Ss Apr07 0:00 | \_ /bin/bash # sferro 14186 47.0 9.4 63136 23404 ttyp3 Rl 14:07 0:01 | \_ /usr/lib/mozilla-firefox/firefox-bin -a firefox # cerrar el ffox y darle enter exec firefox --- cut here --- volver a correr el ps fux. notar que el bash padre ya no está.