LSOpenURLsWithRole () falla con el error -10810 en Yosemite desde tmux

17

Intentando abrir una aplicación desde la línea de comandos (Terminal.app), dentro tmux(instalada a través de MacPorts, versión 1.9a), y obteniendo el siguiente resultado:

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

El mismo comando funciona bien, desde el mismo terminal, si se ejecuta fuera de tmux.

El entorno debe leerse desde el host; lo siguiente está en tmux.conf:set -g update-environment -r

Al reiniciar terminal.app o tmux, a veces se produce un error con un mensaje diferente al principio (ver más abajo) y cuando se intenta nuevamente, se da el error anterior -10810.

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

He probado las aplicaciones propias de Apple (Vista previa, Libro de fuentes, Contactos) y de terceros (Adobe, Evernote, etc.). Ninguna diferencia. La única aplicación que parece funcionar es Finder. ( open [dirname]por ejemplo)

krissen
fuente

Respuestas:

19

Hay una solución / solución para esto:

  • Actualiza tu versión de reattach-to-user-namespace. Esto lo usa tmux para ejecutar programas. Yo uso cerveza en lugar de macports, por lo que acabo de hacer: brew update; brew upgrade reattach-to-user-namespace. Es probable que Macports pueda hacer algo similar.
  • Agregue lo siguiente a su .tmux.confarchivo:

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

Reinicie su sesión tmux y eso debería permitirle iniciar programas desde la línea de comandos.

Se puede encontrar más información en este tema de github.

Brett
fuente
FWIW, la actualización reattach-to-user-namespaceno hace ninguna diferencia para mí, y el problema aún persiste. Parece que tmux debe repararse solo (ver otra respuesta).
Konrad Rudolph
cuando no use el shell predeterminado, asegúrese de cambiar la ruta en el comando (por ejemplo, path/to/your/fish).
Aviel Gross
3

El problema es que tmux está cambiando el bootstrap al dominio del sistema cuando no debería (consulte https://trac.macports.org/ticket/18357 ). Las versiones anteriores de launchd funcionaron alrededor de este error en tmux, pero el launchd reescrito en OS X Yosemite no funciona alrededor de este error tmux.

Tendrá que esperar a que Apple publique una actualización que funcione alrededor del error tmux o molestar a los desarrolladores de tmux para que solucionen este error en tmux que se conoce desde hace al menos 6 años.

Jeremy Huddleston Sequoia
fuente