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)

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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.