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.

  • Los contactos de la libreta de direcciones desaparecieron
  • ¿Problema con la installation de FFMPEG y Homebrew debido al bajo tamaño de HDD?
  • "El sistema de llavero no se puede encontrar"
  • Actualización y ejecución de Git a través de Homebrew en lugar de XCode
  • Construyendo mysql con readline en vez de editline
  • Cómo usar Homebrew para instalar un file local
  • 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?

  • ¿Hay alguna forma de ocultar la insignia de recuentos no leídos en El Capitan según la hora del día?
  • ¿Cómo habilitar / solucionar problemas de vista dividida?
  • ¿Pueden homebrew y macports trabajar juntos para permitir que Firefox-X11 se instale?
  • Entrada de barra invertida repetida en salida
  • Comando de terminal para mover una cantidad de files que contienen corchetes a otra carpeta o papelera
  • OSX Open Atom desde la terminal
  • 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).