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?

Huei
fuente
¡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

justbrowsing
fuente
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!

evamvid
fuente
7

Por fin, lo resolví usando screen:

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

Huei
fuente
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

Ashildr
fuente