¿Cómo se inicia un command bash que no se cierra en Terminal quit?

Quiero ejecutar un command y no detenerlo cuando se cierre el Terminal.

Por ejemplo, si ejecuto top & ; disown top & ; disown , top cierra cuando salgo de la Terminal. Quiero seguir vivo.

Sé que esto es posible ya que el command open puede hacer esto. (Por ejemplo, open -e abre TextEdit, y cuando sale de la Terminal, TextEdit permanece abierto).

Gracias por adelantado.

  • ¿Es posible evitar que el dialog "El file ha sido cambiado" de TextEdit aparezca innecesariamente?
  • Guarde el file en el directory oculto con el dialog de guardado estándar de OS X.
  • Evite que se abra TextEdit para types de files desconocidos que son text sin formatting
  • ¿Cómo elimino "citas inteligentes" de un documento existente?
  • Las asociaciones de teclas TextEdit modificadas en DefaultKeyBinding.dict dejaron de funcionar
  • ¿Cómo 'enlazar' URL de text plano (localmente) en la Mac?
  • Entrar text superíndice (exponentes) en TextEdit?
  • Formateo desde documentos de Word en TextEdit
  • 4 Solutions collect form web for “¿Cómo se inicia un command bash que no se cierra en Terminal quit?”

    Usar la pantalla :

    Para iniciar una session y un process dentro del screen command ejecutar screen command (por ejemplo, la screen top ). Separar de la session con ctrl A ctrl D.

    Ahora puede cerrar la window de session de la Terminal o salir de Terminal y el process iniciado previamente aún se está ejecutando.

    Después de reiniciar Terminal puede get una list de todas las sesiones separadas con la list de screen -list . Use el pid para volver a conectar a una session: screen -R [pid] . Para detener el process de la session reconectada, utilice los commands comunes (por ejemplo, ctrl C para top ) y exit para detener la session.

    Si desea iniciar un process en una nueva session inmediatamente separada, use: screen -d -m command (ej. screen -d -m top ). Esto creará una nueva session de pantalla mientras recibe un nuevo aviso en su session de shell actualmente abierta.

    Por favor, consulte la man screen para una descripción larga, enlaces de teclas y personalizaciones.

    Creo que la key aquí se basa en esta statement:

    Por ejemplo, si ejecuto top &; renunciar, top se cierra cuando salgo de la Terminal. Quiero seguir vivo.

    En el momento en que abandona Terminal, inmediatamente mata lo que estaba ejecutando. Aquí es donde los multiplexores terminales entran en juego.

    La solución a esto es usar tmux .

    tmux es un "multiplexor de terminal", pero una de las mejores características es que continúa ejecutándose incluso si cierra Terminal.

    De su página man :

    tmux es un multiplexor de terminal: permite crear, acceder y controlar una cantidad de terminales desde una sola pantalla. tmux puede separarse de una pantalla y continuar ejecutándose en segundo plano, y luego volver a conectarse.

    Por lo tanto, si desea iniciar desde top , puede desconectarse mientras continúa en segundo plano incluso si Terminal se cierra.

    tmux está disponible a través de homeberew y MacPorts .

    • HomeBrew: sudo brew install tmux
    • MacPorts: sudo port install tmux

    Puede encontrar información detallada sobre la installation en sus respectivos sitios.

    En cuanto a usar tmux , simplemente inicie Terminal y ejecute tmux . Obtendrá una pantalla de Terminal con una barra verde.

    enter image description here

    Ejecutar (por ejemplo) top .

    enter image description here

    Salga y reinicie Terminal.

    Para get una list de sesiones:

    tmux list-sessions

     0: 1 windows (created Wed Sep 7 18:13:21 2016) [132x24] 

    Adjunte a esa session específica

    tmux attach -t0 Y la session vuelve a upload.

    enter image description here

    Al usar un command que desea continuar, normalmente agregaría algo al efecto de:

     nohup yourcommand & 

    El nohup evita que reciba señales de locking, y el background esencialmente lo ejecuta para que pueda continuar haciendo lo suyo.

    ¡Espero que ayude!

    Algunos progtwigs se inician como un process secundario de la window Terminal, por lo que al cerrarlo se cerrará el progtwig. En ese caso, inicie dichos progtwigs en un process separado en consecuencia:

    1. Ingrese la ruta completa al ejecutable en la línea de command (/Applications/Safari.app/Contents/MacOS/safari )

    2. Utilice el command abrir y el indicador correspondiente, como -a para la aplicación ( abrir -a Safari ), que inicia las aplicaciones en un process separado (pid). Una vez que se ejecuta, simplemente puede cerrar la window del Terminal y la aplicación permanecerá abierta, en lugar de usar la ejecución ejecutable directa por cualquier medio que esté utilizando.

    3. El command "osascript", que es el command de Terminal de OS X para ejecutar scripts de "architecture de scripting abierta" como AppleScript ( osascript -e 'aplicación abierta' Safari ' ).

    Los tres tienen un medio separado para abandonar los processs, pero que son similares a cada uno de sus respectivos medios para iniciarlos.

    Tenga en count que estos no son los únicos tres, sino los commands más arcanos disponibles para usted. Los proporciono porque creo que cualquiera que ejecute commands en el terminal ya está familiarizado con todos y cada uno de los commands de stock disponibles en cada distribución estándar de UNIX / Linux / FreeBSD, y sabe cómo usar los relevantes para generar, matar, suspender, tenedor , reanudar, unir y separar hilos y processs, que son el único motivo de existencia de FreeBSD como el sistema operativo instalado en las máquinas de la empresa más rentable del mundo.

    De todos modos, una última cosa: solo el usuario actual puede ejecutar processs utilizando los commands anteriores; inicie processs con estos commands bajo un usuario diferente, debe habilitar la count de superusuario ( su ) y, a continuación, prefijar cada command con sudo .

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