Copié un fragmento de Bash para poner en segundo plano un comando ssh ejecutado de forma remota:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
¿Qué <&-
hacer?
Supongo que es lo mismo que< /dev/null
Mi siguiente entendimiento es que los tres descriptores de archivos principales ( stdin
, stdout
, stderr
) deben ser cerradas para impedir:
- El trabajo está en segundo plano y la secuencia de comandos sale, ¿conflictiva de alguna manera?
- Cuando el terminal se cierra, ¿se cierran todos los procesos que aceptan stdin del terminal?
ssh -nNT user@remote 'command'
creará una sesión SSH no interactiva. Agregue &
al fondo, anteponga nohup
al command
para mantenerlo en funcionamiento si su conexión se corta.
man ssh
sugiere que -N deshabilita la ejecución de un comando remoto por completo, y una prueba rápida lo respalda.