Для объяснения я использую Firefox, но это также происходит с другими приложениями, вот скрипт:

$ cat ff.sh
#!/bin/sh
firefox http://superuser.com/
echo "$?"

Допустим, Firefox закрыт, когда я бегу

$ ./ff.sh

скрипт заблокирован, пока я не закрою Firefox. Только после этого я получаю код выхода.

0

$ 

Теперь предположим, что Firefox уже запущен, когда я запускаю скрипт, он открывает новую вкладку Firefox и запускается до конца. (И Firefox продолжает работать.)

$ ./ff.sh
0

$ 

Как я могу добиться того, чтобы поведение было таким же, как в первом примере, независимо от условия запуска? В основном я хочу достичь противоположности

$ cmd &

1 ответ1

0

Похоже, что он работал асинхронно, а на самом деле это не так.
Когда Firefox запускает, он проверяет существующий экземпляр, если он найден, он передает управление существующему экземпляру и завершает сам. Отсюда и путаница.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .