%20Como%20iniciar%20uma%20inst%C3%A2ncia%20de%20um%20aplicativo%20j%C3%A1%20em%20execu%C3%A7%C3%A3o%20no%20modo%20de%20bloqueio%3F.png)
Para explicar eu uso o Firefox, mas isso também acontece com outros aplicativos, aqui está o script:
$ cat ff.sh
#!/bin/sh
firefox http://superuser.com/
echo "$?"
Digamos que o Firefox esteja fechado, quando executo
$ ./ff.sh
o script fica bloqueado até eu fechar o Firefox. Só depois disso recebo o código de saída.
0
$
Agora digamos que o Firefox já esteja rodando, quando executo o script ele abre uma nova aba do Firefox e vai até o final. (E o Firefox continua funcionando.)
$ ./ff.sh
0
$
Como posso conseguir que o comportamento seja o mesmo do primeiro exemplo, independentemente da condição inicial? Basicamente, quero alcançar o oposto de
$ cmd &
Responder1
Parece que foi executado de forma assíncrona, mas na verdade não foi.
Quando o Firefox é iniciado, ele verifica a instância existente; se for encontrado, ele delega o controle à instância existente e se encerra. Daí a confusão.