Estoy conectado a un servidor a través de ssh y quiero ejecutar un proceso que llevará mucho tiempo. Me conecto al servidor usando ssh en la terminal de mi computadora portátil, pero quiero poder apagar mi computadora portátil pero aún tener el progreso ejecutándose en el servidor. Dado que son dos computadoras separadas, parece que debería poder hacer esto, pero no estoy seguro de si es posible a través de ssh.
Respuesta1
Es bastante simple, agregue un &
después de su comando, diga por ejemplo
bash script.sh &
Continuará su ejecución incluso si abandona la sesión o cierra la terminal.
Otra forma es usar nohup
el comando y ejecutar su comando. Por ejemplo
nohup bash script.sh
Encuentra más usando man nohup
y sigueestePregunta que tiene una dirección similar.
Respuesta2
Trabajos en segundo plano
Para ejecutar en segundo plano
program &
Para ejecutar en segundo plano y continuar después de desconectarse. También redirige stdout
a ~/nohup.out
.
nohup program &
Lo mismo pero redirigir a otro archivo
nohup program > "another file" &
Nota para los comandos anteriores, puede ver los trabajos en segundo plano con el jobs
comando.
Lo mismo pero eliminar de la lista de trabajos
nohup program > "another file" & disown
Sesiones persistentes
Ver ñu screen
, tmux
y vnc
. Le permiten mantener una sesión abierta mientras está desconectado.
Ñuscreen
#create a screen session (do this once)
screen -d -m
#attach to the session
screen -x
También puedes tener más de una (sesiones con nombre)
#create a screen session (do this once)
screen -d -m -S a_name
#attach to the session
screen -x -S a_name
Tenga en cuenta que ctrl_a se usa para controlar la pantalla cuando está dentro. ctrl_a ctrl_a para pasar ctrl_a al shell.
VNC
#create a vnc session (do this once)
vncserver -from 127.1.0.1 -geometry 1920x1000 :10
#attach to the session (from a remote machine)
ssvnc Vnc+ssh://«user»@«machine-name»:10
Cambie la geometría para arreglar su pantalla, tal vez cambie el número de pantalla.
Notas:
Cualquiera en la máquina local puede conectarse a la sesión VNC.
Puede agregar -SecurityTypes None
desactivar la seguridad VNC, si tiene suficiente seguridad a través de ssh
.
127.1.0.1
está en el rango de bucle invertido. Sólo se pueden conectar los procesos en la máquina local. Puede conectarse de forma remota a través de ssh
(ssvnc). Puede utilizar nftables
para restringir a qué usuarios pueden conectarse 127.1.0.1
. Hay muchas direcciones en el rango de bucle invertido 127.0.0.1
( 127.255.255.254
alrededor de 16 millones), por lo que puede asignar una a cada usuario y aún tener espacio libre.