Continuar con tareas / trabajos en segundo plano SSH al cerrar SSH


27

Tengo la misma pregunta que aquí, pero incluso más allá de eso.

Si cierro sesión / salgo de la conexión SSH, necesito que mi programa se ejecute en segundo plano. Antes de salir, escribo bgy jobscompruebo la tarea de ejecución en segundo plano, pero después de salir de SSH, el programa no se ejecuta, se cierra cuando cierro la ventana de SSH.

¿Qué puedo hacer si quiero que mi programa siga ejecutándose después de cerrar la ventana SSH? Lo uso nohup screenpero tampoco funciona, ¿o me estoy perdiendo algo?


¡Bienvenido a Super User! Por favor no ponga su respuesta en la pregunta. Publíquelo como respuesta a continuación una vez que pueda (en aproximadamente 7 horas) usando el botón Responder a su pregunta . Gracias. (Tenga en cuenta también que no hay necesidad de añadir <br/>s a tu puesto párrafos Simplemente haga según sea necesario y mientras estás en ello, por favor utilice la capitalización adecuada Hace que sus mensajes fáciles de leer....)
slhck

Por cierto, no es necesario usar bgo nohupcuando se usa screen. También esta pregunta está relacionada.
justbrowsing

usted hace revisar este hilo @ stack overflow stackoverflow.com/questions/285015/…
Ashildr

Respuestas:


46

Cuando lo use screen, necesita separarse con CTRL+A+ Dantes de salir ssh.

Alternativamente, si desea ejecutar un proceso directamente con la pantalla, puede usar

screen -dmSL [session name] [commands]
  • -d inicia una sesión de pantalla e inmediatamente se separa de ella
  • -m obliga a crear una nueva sesión de pantalla
  • -S le permite dar un nombre a la sesión
  • -L activa el inicio de sesión en ~/screenlog.0

ejemplo:

screen -dmSL workstuff myscript.sh

Entonces puedes:

reanudar más tarde usando screen -x workstuff

o

verifique el archivo de registro less -r ~/screenlog.0


14

Uso tmux. Ni siquiera estoy seguro de si screenaún está en desarrollo activo. Es una especie de preferencia, pero como alguien que usa tmux, puedo testificar que se configuró en unos 5 minutos y funcionó perfectamente.

En un sistema basado en Debian (en la máquina remota):

sudo apt-get install tmux

luego ingrese tmuxpara ingresar, ejecute el proceso que necesite y presione Ctrl+ Bluego D(esto deja la sesión de tmux). Luego, puede cerrar sesión en SSH.

Cuando necesite regresar / verificarlo nuevamente, inicie SSH e ingrese tmux attach. Te llevará de vuelta a tu tmuxsesión.

tmuxtiene muchas más capacidades, como se detalla aquí. Pero, esto debería resolver su problema inmediato.

¡Buena suerte!


7

Por fin, lo resolví usando screen:

En el modo de pantalla, sepáralo con CtrlAD. Luego puede cerrar la ventana SSH.


5

nohup use: el primero de los comandos a continuación inicia el programa abcd en segundo plano de tal manera que el cierre de sesión posterior no lo detiene.

$ nohup abcd y

$ salida

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.