(Linux) Wie starte ich eine Instanz einer bereits laufenden Anwendung im Blockierungsmodus?

(Linux) Wie starte ich eine Instanz einer bereits laufenden Anwendung im Blockierungsmodus?

Zur Erklärung: Ich verwende Firefox, aber es passiert auch bei anderen Anwendungen. Hier ist das Skript:

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

Nehmen wir an, Firefox ist geschlossen, wenn ich starte

$ ./ff.sh

das Skript wird blockiert, bis ich Firefox schließe. Erst danach erhalte ich den Exitcode.

0

$ 

Nehmen wir nun an, dass Firefox bereits ausgeführt wird. Wenn ich das Skript ausführe, wird eine neue Firefox-Registerkarte geöffnet und es wird bis zum Ende ausgeführt. (Und Firefox läuft weiter.)

$ ./ff.sh
0

$ 

Wie kann ich erreichen, dass das Verhalten unabhängig von der Startbedingung das gleiche ist wie im ersten Beispiel? Im Grunde möchte ich das Gegenteil erreichen von

$ cmd &

Antwort1

Es sieht so aus, als ob es asynchron lief, obwohl das nicht der Fall war.
Beim Start prüft Firefox, ob eine Instanz vorhanden ist. Wenn eine gefunden wird, übergibt es die Kontrolle an die vorhandene Instanz und beendet sich selbst. Daher die Verwirrung.

verwandte Informationen