La session Terminal.app y tmux no puede usar el command "abrir" (sin tmux funciona)

Yo uso Terminal.app y una session de tmux .

 > open -a VLC file.mp4 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. 

Sin tmux este command funciona.

  • No se puede hacer clic en enlaces en ciertas circunstancias
  • Error de OpenVPN JSON después de actualizar a El Capitan
  • Búsqueda de dictionary más y más alta (estilo de búsqueda de dictionary emergente) en OS X
  • ¿Debo usar homebrew o el descargador oficial para instalar nodejs?
  • No se puede acceder al recurso compartido de files samba
  • ¿Es posible fusionar 2 files de contactos diferentes?
  • Busqué en Google y descubrí que no se puede usar el command 'abrir' en OSX tmux desde el 10 de julio de 2015.

     brew update brew install reattach-to-user-namespace brew upgrade reattach-to-user-namespace echo "set -g default-command \"reattach-to-user-namespace -l ${SHELL}\"" >> ~/.tmux.conf cat .tmux.conf set -g default-command "reattach-to-user-namespace -l /bin/bash" 

    Lo hice y todavía tengo el mismo error

     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. 

    ¿Qué se supone que debe hacer el reajuste al espacio de nombres del usuario?

  • Aplicación que no admite Carpetas inteligentes / Etiquetas: ¿cómo acceder a Etiquetas / Carpetas inteligentes a través de la Terminal o en otro lugar?
  • ¿En qué tipo de hash está almacenada la contraseña de Mac?
  • ¿Por qué dsenableroot NO funcionaría en un 10.7.5 OSX Server?
  • Actualización automática de Homebrew
  • Crear partición de installation de El Capitan
  • aplicación pnetworkingeterminada para abrir carpetas con
  • One Solution collect form web for “La session Terminal.app y tmux no puede usar el command "abrir" (sin tmux funciona)”

    Se supone que el command mueve el process de tmux desde un context de arranque recién creado debajo de la raíz al context de inicio de session del usuario.

    Para explicar eso en términos ligeramente más comunes:

    macOS (anteriormente OS X) está construido con un Mach-kernel en la capa más baja. Los progtwigs que se ejecutan en esta capa se llaman tareas.

    Encima de Mach-kernel está el subsistema BSD. Los progtwigs que se ejecutan en esta capa se llaman processs. Las aplicaciones que ejecuta y conoce en OS X (como, por ejemplo, tmux o Terminal.app) utilizan el subsistema BSD, por lo que cuando se ejecutan se convierten en processs.

    Cuando un progtwig en ejecución (un process o tarea) necesita comunicarse con otro process / tarea a través de un puerto Mach, pasará por la llamada tarea de arranque. Esta tarea de muy bajo nivel es responsable de search las requestes de puerto Mach, y esencialmente dirigir la información al lugar correcto.

    macOS / OS X es esencialmente un sistema multiusuario. Múltiples usuarios pueden iniciar session al mismo time, y cada uno puede ejecutar múltiples processs. Generalmente no se les permite interactuar entre ellos, excepto cuando se permite explícitamente.

    Además de los processs de usuario, el sistema arrancará (y algunas veces más tarde) progtwigs en segundo plano llamados daemons. No están asociados con un inicio de session de usuario específico, y continúan ejecutándose cuando los usuarios se desconectan.

    La tarea de arranque de Mach anteriormente mencionada agrupa todas las tareas en el "context de inicio" para los progtwigs de daemon o en el "context de inicio de session de usuario". Hay uno de estos últimos para cada usuario actualmente conectado.

    En esencia, cuando los progtwigs buscan puertos Mach para comunicarse, solo pueden ver los puertos en su context actual. Cuando comienza un progtwig normal, se inicia en el context de inicio de session de su usuario y, por lo tanto, puede comunicarse con otros progtwigs que haya iniciado.

    Sin embargo, el process tmux utiliza la function call daemon () para "daemonizar", es decir, seguir ejecutándose en segundo plano. Esto también tiene el efecto de mover el process tmux del context de inicio de session del usuario al context de inicio.

    Ahora los progtwigs como "abrir" ya no funcionarán, porque funcionan al search el puerto Mach de WindowServer para el usuario actualmente conectado, y le envía commands para hacer su trabajo. La búsqueda fallará, ya que tmux ahora se encuentra en el context de arranque incorrecto.

    El progtwig de reasignación a espacio de nombres de usuario soluciona este problema utilizando una forma no oficial de interactuar con el process de lanzamiento (que es responsable de la gestión de processs de daemon): iniciarse para indicarle qué context es el context de inicio de session del usuario.

    Luego usa la llamada al sistema Mach task_set_bootstrap_port () para que el puerto adicional se vea desde los processs tmux (y sus processs secundarios) golpearán la tarea bootstrap de context de inicio de session del usuario.

    En cuanto a por qué no funciona para usted: ¿Ha recordado matar y reiniciar su server tmux después de la installation? (Haga esto ejecutando "tmux kill-server")

    También podría intentar ejecutar manualmente el command reattach-to-user-namespace desde Terminal.app para ver si realmente lo tiene instalado y funciona correctamente.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).