Öffnen Sie die App im Hintergrund vom Terminal aus

Ich versuche, eine App im Hintergrund vom Terminal aus zu öffnen, indem ich die Flags -goder --backgroundso verwende

open -g -a Franz

Leider öffnet sich die App nicht im Hintergrund. Ich habe auch das jFlag ausprobiert, das laut Hilfe die App verstecken soll:

Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b <bundle identifier>] [-a <application>] [filenames] [--args arguments]
Help: Open opens files from a shell.
      By default, opens each file using the default application for that file.  
      If the file is in the form of a URL, the file will be opened as a URL.
Options: 
      -a                Opens with the specified application.
      -b                Opens with the specified application bundle identifier.
      -e                Opens with TextEdit.
      -t                Opens with default text editor.
      -f                Reads input from standard input and opens with TextEdit.
      -F  --fresh       Launches the app fresh, that is, without restoring windows. Saved persistent state is lost, excluding Untitled documents.
      -R, --reveal      Selects in the Finder instead of opening.
      -W, --wait-apps   Blocks until the used applications are closed (even if they were already running).
          --args        All remaining arguments are passed in argv to the application's main() function instead of opened.
      -n, --new         Open a new instance of the application even if one is already running.
      -j, --hide        Launches the app hidden.
      -g, --background  Does not bring the application to the foreground.
      -h, --header      Searches header file locations for headers matching the given filenames, and opens them.

Die App öffnet sich im Vordergrund, als hätte ich sie einfach angerufen

open -a Franz

Irgendeine Idee, warum das nicht funktioniert und eine Alternative?

Ich habe es mit mehreren Anwendungen unter macOS 10.12.5 getestet und es funktioniert gut. Das Problem hängt möglicherweise mit der Franz-Anwendung zusammen.
Ich habe das gleiche Problem, bei dem bestimmte Apps die Flaggen nicht respektieren. Ich kann Messagesim Hintergrund öffnen, aber der Versuch, Booksmit denselben Flags zu öffnen, öffnet es im Vordergrund. Ärgerlich, dass Apples eigene Apps damit nicht funktionieren…
Für zukünftige Leser: Die widersprüchlichen Berichte in diesem Q&A werden wahrscheinlich dadurch verursacht, welche App genau geöffnet wird. Zum Beispiel weigert sich Google Chrome, entweder -goder -j(oder übrigens -gj) zu respektieren, aber Firefox und Safari funktionieren perfekt nur mit -g.

Antworten (3)

Wenn man den Befehl open mit --hide (-j)aufruft funktioniert es (zumindest in macOS Sierra). Zum Beispiel

open -j -a /Applications/Skype.app

Auch die -gFlagge hilft einigen

open -gj -a /Applications/Skype.app
Leider scheint diese Antwort für neuere Versionen von MacOs wie Catalina nicht zu funktionieren
Der zweite arbeitete an der Catalina
open -gj -a "Name of Application"funktioniert perfekt

Zum Zeitpunkt des Schreibens (10.14.3 Mojave) lautet die richtige Antwort:

open -a /Applications/Skype.app -gj

Wenn Sie tun

man open

Sie können sehen, dass

-g Bringt die Anwendung nicht in den Vordergrund.

-j Startet die App versteckt.

Vielen Dank. Noch nicht auf Mojave, aber ich werde es im Hinterkopf behalten, wenn ich ein Upgrade mache.
Funktioniert bei mir nicht (10.14.6 Mojave)
Das beantwortet die Frage nicht wirklich – sie versuchen, die App im Hintergrund zu öffnen, nicht versteckt.
Funktioniert bei mir mit macOS 10.14.6 (18G3020) für NetNewsWire.app: Die App wird gestartet und sofort ausgeblendet, ohne dass der Bildschirm flackert oder ähnliches.
Das OP gibt an, dass sie bereits -g und -j ausprobiert haben.

Sie müssen das -jund -gvor dem angeben-a

Zum Beispiel:

open -gja /Applications/Calendar.app
OP sagt sehr deutlich, dass das Flag -j nicht funktioniert .
Richtig, im Grunde funktioniert es nur in Kombination mit dem-g (--background) and -j (--hide) Flag