LSOpenURLsWithRole () non riesce con errore -10810 su Yosemite dall'interno di tmux


17

Tentare di aprire un'applicazione dalla riga di comando (Terminal.app), all'interno tmux(installato tramite MacPorts, versione 1.9a) e ottenere il seguente risultato:

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

Lo stesso comando funziona benissimo, dallo stesso terminale, se eseguito all'esterno di tmux.

L'ambiente deve essere letto dall'host; quanto segue è in tmux.conf:set -g update-environment -r

Quando si riavvia terminal.app o tmux, talvolta errori fuori con un messaggio diverso a prima, (vedi sotto), e quando riprovato, l'errore precedente -10.810 è dato invece.

$ 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.

Ho provato entrambe le app di Apple (anteprima, libro dei font, contatti) e di terze parti (Adobe, Evernote ecc.). Nessuna differenza. L'unica app che sembra funzionare, è finder. ( open [dirname]ad esempio.)

Risposte:


19

Esiste una soluzione / soluzione alternativa per questo:

  • Aggiorna la tua versione di reattach-to-user-namespace. Questo è usato da tmux per eseguire programmi. Io uso birra piuttosto che macports, così ho appena fatto: brew update; brew upgrade reattach-to-user-namespace. È probabile che Macports sia in grado di fare qualcosa di simile.
  • Aggiungi quanto segue al tuo .tmux.conffile:

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

Riavvia la sessione di tmux e ciò dovrebbe consentire di avviare i programmi dalla riga di comando.

Ulteriori informazioni sono disponibili in questo numero di github.


FWIW, l'aggiornamento reattach-to-user-namespacenon fa differenza per me e il problema persiste ancora. Sembra che tmux debba essere corretto da solo (vedi altra risposta).
Konrad Rudolph,

quando non si utilizza la shell predefinita, assicurarsi di modificare il percorso nel comando (ad esempio, path/to/your/fish).
Aviel Gross,

3

Il problema è che tmux sta cambiando il bootstrap nel dominio di sistema quando non dovrebbe (consultare https://trac.macports.org/ticket/18357 ). Le versioni precedenti di launchd hanno funzionato attorno a questo bug in tmux, ma il launchd riscritto in OS X Yosemite non funziona con questo bug tmux.

Dovrai aspettare che Apple rilasci eventualmente un aggiornamento che funzioni attorno al bug di tmux o pester agli sviluppatori di tmux per correggere questo bug in tmux che è noto da almeno 6 anni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.