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.