¿Cómo mantener el programa ejecutándose después de la desconexión SSH? [duplicar]

15

Posibles duplicados:
mantenga un programa en ejecución después de cerrar una consola, después de que el programa se haya iniciado.
¿Cómo puedo usar ssh para ejecutar un comando en una máquina Unix remota y salir antes de que se complete el comando?

¡Hola!

Quiero ejecutar el programa desde mi computadora portátil por conexión SSH al servidor remoto. El problema es que me voy a casa con mi cuaderno :)

¿Cómo mantener el programa en ejecución?

Max
fuente

Respuestas:

22

'pantalla' es muy probablemente lo que quieres. Le permite desconectarse y reconectarse a voluntad. Después de ingresar SSH al servidor, ejecute la pantalla antes de iniciar su programa. Ctrl-a, Ctrl-d lo desconectará (el programa continúa independientemente). A su regreso, 'screen -r' lo reconectará como si nunca hubiera estado fuera.

Piense en ello como VNC o RDP para terminales de texto. Busque 'usando la pantalla' para muchos tutoriales.

Editado para agregar: en estos días recomendaría tmux en su lugar, especialmente si se usa junto con el script tmx . La capacidad de dividir paneles (vertical y horizontalmente) y cambiar su tamaño es una gran bendición sobre la pantalla.

Chris
fuente
55
Por cierto, la pantalla seguirá ejecutándose si su conexión se agota o algo así mientras está conectado a ella. Algunos comandos útiles: ctrl + a, ctrl + d = desconectar de la pantalla, pantalla -r = volver a adjuntar a una pantalla, pantalla -x = adjuntar a una pantalla en modo compartido (se puede usar para enseñar, etc., dos usuarios pueden compartir la misma pantalla), ctrl + a, esc = ingrese al modo de desplazamiento (presione q para salir nuevamente). NOTA: Si inicia una pantalla escribiendo "programa de pantalla", se iniciará inmediatamente el programa en la pantalla, pero si se cierra, perderá el búfer. Si escribe "pantalla", obtendrá un terminal persistente.
Chris, también gracias por una respuesta útil.
18

nohup es un comando que ejecutará otro comando y lo hará inmune a la señal de "colgar".

Lo ejecutas tan simple como:

nohup command

pero también deberá redirigir stdin, stdout y stderr. Vea la página del manual para más información.

Probablemente también quieras ponerlo en segundo plano.

También necesitará conocer el killcomando para acabar con él.

Pensamiento extraño
fuente
¡Sí, muchas gracias! tan fácil))
Este es el que yo uso. Muy muy facil. Se usa teepara redirigir stdin, stdout y stderr.
Ritwik Bose