%20%C2%BFC%C3%B3mo%20iniciar%20una%20instancia%20de%20una%20aplicaci%C3%B3n%20que%20ya%20se%20est%C3%A1%20ejecutando%20en%20modo%20de%20bloqueo%3F.png)
Para explicarlo uso Firefox, pero también pasa con otras aplicaciones, aquí está el script:
$ cat ff.sh
#!/bin/sh
firefox http://superuser.com/
echo "$?"
Digamos que Firefox está cerrado cuando ejecuto
$ ./ff.sh
el script está bloqueado hasta que cierre Firefox. Sólo después de eso obtengo el código de salida.
0
$
Ahora digamos que Firefox ya se está ejecutando, cuando ejecuto el script, se abre una nueva pestaña de Firefox y se ejecuta hasta el final. (Y Firefox sigue funcionando).
$ ./ff.sh
0
$
¿Cómo puedo lograr que el comportamiento sea el mismo que en el primer ejemplo independientemente de la condición de inicio? Básicamente quiero lograr lo opuesto a
$ cmd &
Respuesta1
Parece que se ejecutó de forma asincrónica, cuando en realidad no fue así.
Cuando se inicia Firefox, busca una instancia existente; si la encuentra, delega el control a la instancia existente y finaliza. De ahí la confusión.