LSOpenURLsWithRole() schlägt mit Fehler -10810 auf Yosemite innerhalb von tmux fehl

LSOpenURLsWithRole() schlägt mit Fehler -10810 auf Yosemite innerhalb von tmux fehl

Beim Versuch, eine Anwendung über die Befehlszeile (Terminal.app) zu öffnen tmux(installiert über MacPorts, Version 1.9a), wird das folgende Ergebnis angezeigt:

$ open /Applications/Adobe\ Reader.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Adobe Reader.app.

Der gleiche Befehl funktioniert einwandfrei.vom selben Terminal aus,wenn außerhalb von tmux ausgeführt.

Die Umgebung sollte vom Host gelesen werden. Folgendes steht in tmux.conf:set -g update-environment -r

Beim Neustart von terminal.app oder tmux tritt manchmal eine andere Fehlermeldung aufanfangs,(siehe unten) und beim erneuten Versuch wird stattdessen der oben genannte Fehler -10810 ausgegeben.

$ open /Applications/Adobe\ Reader.app/
The window server could not be contacted.  open must be run with a user logged in at the console, either as that user or as root.

Ich habe sowohl Apples eigene Apps (Vorschau, Schriftsammlung, Kontakte) als auch Apps von Drittanbietern (Adobe, Evernote usw.) ausprobiert. Kein Unterschied. Die einzige App, die zu funktionieren scheint, ist Finder. ( open [dirname]zum Beispiel.)

Antwort1

Hierfür gibt es eine Lösung/einen Workaround:

  • Aktualisieren Sie Ihre Version von reattach-to-user-namespace. Dies wird von tmux zum Ausführen von Programmen verwendet. Ich verwende Brew statt Macports, also habe ich Folgendes getan: brew update; brew upgrade reattach-to-user-namespace. Macports kann wahrscheinlich etwas Ähnliches.
  • Fügen Sie Ihrer Datei Folgendes hinzu .tmux.conf:

    set -g default-command "reattach-to-user-namespace -l /bin/bash"

Starten Sie Ihre tmux-Sitzung neu. Dann sollten Sie Programme über die Befehlszeile starten können.

Weitere Informationen finden Sie unterdieses GitHub-Problem.

Antwort2

Das Problem besteht darin, dass tmux den Bootstrap in die Systemdomäne ändert, obwohl dies nicht der Fall sein sollte (siehehttps://trac.macports.org/ticket/18357). Ältere Versionen von launchd haben diesen Fehler in tmux umgangen, aber das neu geschriebene launchd in OS X Yosemite umgeht diesen tmux-Fehler nicht.

Sie müssen entweder warten, bis Apple möglicherweise ein Update veröffentlicht, das den Tmux-Fehler umgeht, oder die Tmux-Entwickler bedrängen, diesen seit mindestens 6 Jahren bekannten Fehler in Tmux zu beheben.

verwandte Informationen