LSOpenURLsWithRole () schlägt mit dem Fehler -10810 auf Yosemite in tmux fehl

5356
krissen

Beim Versuch, eine Anwendung von der Befehlszeile (Terminal.app) aus zu öffnen tmux(über MacPorts Version 1.9a installiert), und folgendes Ergebnis zu erhalten:

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

Derselbe Befehl funktioniert vom selben Terminal aus, wenn er außerhalb von tmux ausgeführt wird.

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

Wenn terminal.app oder tmux Neustart es manchmal Fehler mit einer anderen Botschaft zunächst (siehe unten) und wenn erneut versucht wird die obigen Fehler -10.810 statt gegeben.

$ 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, Font Book, Kontakte) als auch Drittanbieter (Adobe, Evernote usw.) ausprobiert. Kein Unterschied. Die eine App, die scheinbar funktioniert, ist der Finder. ( open [dirname]zum Beispiel)

17

2 Antworten auf die Frage

19
Brett

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

  • Aktualisieren Sie Ihre Version von reattach-to-user-namespace. Dies wird von tmux verwendet, um Programme auszuführen. Ich benutze brauen statt Macports, also tat ich gerade: brew update; brew upgrade reattach-to-user-namespace. Macports wird wahrscheinlich etwas Ähnliches tun können.
  • Fügen Sie Ihrer .tmux.confDatei Folgendes hinzu :

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

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

Weitere Informationen finden Sie in dieser Ausgabe von github.

FWIW, das Aktualisieren von "Wiederanbringen-an-Benutzer-Namespace" macht für mich keinen Unterschied, und das Problem bleibt bestehen. Es scheint, als müsste tmux selbst behoben werden (siehe andere Antwort). Konrad Rudolph vor 9 Jahren 0
Wenn Sie die Standard-Shell nicht verwenden, stellen Sie sicher, dass Sie den Pfad im Befehl ändern (z. B. "path / to / your / fish"). Aviel Gross vor 8 Jahren 0
3
Jeremy Huddleston Sequoia

Das Problem ist, dass tmux den Bootstrap zur Systemdomäne ändert, wenn dies nicht der Fall sein sollte (siehe https://trac.macports.org/ticket/18357 ). Ältere Versionen von launchd umgehen diesen Fehler in tmux, aber der umgeschriebene Start in OS X Yosemite kann diesen tmux-Fehler nicht umgehen.

Entweder müssen Sie warten, bis Apple möglicherweise ein Update veröffentlicht, das um den tmux-Fehler herum arbeitet, oder die tmux-Entwickler schikanieren, um diesen Fehler in tmux zu beheben, der seit mindestens 6 Jahren bekannt ist.