Unter Mac OS 10.6.6 möchte ich einen Bash-Alias oder eine Bash-Funktion erstellen, mit der Google Chrome ausgeführt wird. Das Starten von Chrome ist ganz einfach: "/ Programme / Google Chrome.app/Contents/MacOS/Google Chrome". Das Problem ist, wie Sie den Chrome-Prozessbaum von Terminal.app trennen, damit Chrome nicht beendet wird, wenn ich das Terminalfenster schließe. Ich habe all das versucht, ohne Erfolg:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" &
nohup "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" &
disown
screen "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
screen "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" &
Gibt es Vorschläge, wie Sie den Chrome-Prozessbaum wirklich von Terminal.app trennen können? Gibt es eine andere Möglichkeit, eine Befehlszeilenverknüpfung zum Starten und Trennen von Chrome zu erstellen?
BEARBEITEN: Beachten Sie, dass die Antworten auf diese Frage auch für das Starten anderer Anwendungen als nur Chrome gelten.
bash
terminal.app
AlcubierreDrive
quelle
quelle
Antworten:
Versuche dies:
quelle
open
verwendet Launch Services, um zu bestimmen, mit welcher Anwendung eine Datei geöffnet werden soll. Wenn Sie es tun, wie William es vorschlägt, wird das Mac-Anwendungspaket geöffnet, aber Sie starten die Unix-Binärdatei selbst, die ein Fenster für die Konsolenausgabe (stdout
) erhält .open
kehrt sofort zurück, daher gibt es nicht viele andere Optionen. Sie könnenopen -a "Google Chrome"
Launch Services auch verwenden , um zu bestimmen, welche registrierte Kopie von Google Chrome gestartet werden soll.-a
. Die Semantik unterscheidet sich geringfügig ( öffnen Sie die Datei...
mit der Standardanwendung für diesen Typ und öffnen Sie die Anwendung...
), aber das Ergebnis ist dasselbe.Dadurch wird Chrome geöffnet, unabhängig davon, wo es installiert ist. Dies kann über einen fest codierten Pfad wünschenswert sein.
Beachten Sie auch, dass die Verwendung
open
der ausführbaren Datei sich dadurch von der direkten Ausführung unterscheidet, dass keine zweite Kopie von Chrome gestartet wird . Dies ist das korrekte Verhalten des Mac. Das direkte Ausführen der ausführbaren Datei sollte nur durchgeführt werden, wenn Sie besondere Anforderungen haben, z. B. die Übergabe von Befehlszeilenargumenten (die eine ordnungsgemäße Mac-Anwendung unter normalen Umständen niemals benötigen sollte).quelle
open -na "Google Chrome"
öffnet eine zweite Instanz.open -a "Google Chrome" --args "someArg"
übergibt Argumente.--args
ist anscheinend neu in 10.6, aber auch-n
neu für mich. Offensichtlich habe ich die Manpageopen
schon eine Weile nicht mehr gelesen .