Creo que la clave aquí se basa en esta afirmación:
Por ejemplo, si ejecuto top & ; disown, top se cierra cuando salgo de Terminal. Quiero mantener top vivo.
En el momento en el que sales de Terminal, inmediatamente mata lo que estabas ejecutando. Aquí es donde multiplexores de terminal entran en juego.
La solución a esto es utilizar tmux .
tmux es un "multiplexor de terminales", pero una de sus mejores características es que sigue funcionando incluso si cierras el Terminal.
De su man
página:
tmux es un multiplexor de terminales: permite crear, acceder y controlar varios terminales desde una sola pantalla. tmux puede separarse de una pantalla y seguir ejecutándose en segundo plano, para luego volver a conectarse.
Por lo tanto, si quiere lanzar top
, puedes desprenderte de él mientras continúa en segundo plano incluso si Terminal está cerrado.
tmux está disponible a través de homeberew y MacPorts .
- Cerveza casera:
sudo brew install tmux
- MacPorts:
sudo port install tmux
Puede encontrar información detallada sobre la instalación en sus respectivos sitios web.
En cuanto al uso de tmux
Simplemente inicie el Terminal y ejecute tmux
. Obtendrá una pantalla de Terminal con una barra verde.
Ejecutar (por ejemplo) top
.
Salga y vuelva a iniciar el Terminal.
Para obtener una lista de sesiones:
tmux list-sessions
0: 1 windows (created Wed Sep 7 18:13:21 2016) [132x24]
Adjuntar a esa sesión específica
tmux attach -t0
Y la sesión vuelve a funcionar.
1 votos
¿Por qué? No hay nada que ver si el proceso no está conectado a un terminal/
0 votos
top
era sólo un comando de ejemplo. Yo usaría un comando diferente que no muestra nada.0 votos
Entonces no veo ningún problema. Si el comando no emite nada ni acepta ninguna entrada, debería funcionar. La aplicación Terminal.app puede indicar que está cerrando el proceso, pero el proceso continúa ejecutándose después de salir de la aplicación Terminal.app. Probado en OS X 10.6.