El
pasado día 16-06-2017, escribí a Macjosan un correo electrónico,
con el asunto:
Una
pequeña pega en SSH
La
misiva decía así:
Estimado
Macjosan, te escribo la presente debido a una pequeña pega a la hora
de "cacharrear" con terminales a través de SSH.
Me
explico, de un tiempo a esta parte me conecto a través del móvil
con
el servidor utilizando para ello JuiceSSH, un emulador de
terminal de
android, utilizando youtube-dl (que esta instalado en el
servidor) me
descargo series desde paginas de internet, copiando y
pegando la
dirección url de servidores streamcloud, hasta aquí la
cosa funciona y
pita bien, sin problemas, la descarga empieza y
puedo descargar a la
carpeta que quieras. La pega viene, a la hora
de salir del cliente, si
hago eso sin que haya concluido la
descarga, automáticamente la descarga
deja de funcionar y la
operación falla.
La
pregunta es la siguiente: ¿sabes como salir del terminal cliente y
que se siga ejecutando en el servidor la operación, comando o
script,
que desde el cliente (móvil, ordenador, etc) has mandado
ejecutar?.
Esto
que "a priori" puede parecer una autentica chorrada (y
seguramente
lo es) me trae de cabeza, si supieras la solución me lo
comunicas por
este medio.
Comentarte
que he probado ciertas formas que explican en foros, como
poner &
al final del comando y otras más exóticas que probé y no
funcionaron.
Dándote
las gracias por anticipado me despido.
Un
saludo.
73
de Domingo....
P.D.
Las conexiones de las que hablo, siempre las hago desde mi misma
red
LAN.
Lamentablemente
Macjosan, nunca me contesto, bien por que no sabia la respuesta, bien
por que no tenia tiempo o bien por que yo no supe expresar con
claridad mi duda.
Mas
tarde escuchando a Angel de Ugeek, descubrí el servicio Dataplicity
y la duda se transformo de una simple chorrada en una imperiosa
necesidad, ya que ahora podía comunicarme con mi servidor desde
cualquier punto del planeta en donde hubiera un punto de acceso a
internet. No se ha vosotros pero cuando a un servidor se le ocurre
una idea, la tiene que llevar a cabo de una forma inmediata, ya que
si no corre el riesgo de olvidar, el que o el como se me ocurrió y
la forma en que pensé ejecutarla.
Así
que ahora era un tema primordial, el poder ejecutar un proceso desde
el terminal remoto y al cerrar este “no matar” dicho proceso.
Probé el comando “disonw”, justamente con los parámetros:
disown -h %1 bg 1 A mi esto no me funciono, ya que no entendí nunca lo que realmente hacia el comando, ni como se quedaba el proceso, el caso es que cuando ejecutaba “disow” con “&” al final de la serie de comandos, recuperaba el terminal durante un breve periodo de tiempo “un segundo más o menos” y después la salida del proceso volvía al terminal y si cerrada este el proceso se “mataba”. El comando “nohup” Hasta que al fin di con el comando “nohup”, que “desvía” de una forma eficaz la salida del proceso, creando en la carpeta que cada uno elija un archivo llamado “nohup.out” por lo que es indispensable que si por ejemplo el proceso iniciado es una descarga, la misma se realice en una carpeta especifica para realizar sin ningún tipo de problemas la misma. El formato por ejemplo para realizar una descarga seria el siguiente: osiris@osiris:/home/osiris/descargas/pelicula/$ nohup wget “dirección url” & El archivo de descarga, junto con el archivo “nohup.out” se descargaran en la carpeta “película”, una vez se inicie el proceso, recuperaremos el terminal y podremos cerrar el mismo sin afectar el proceso iniciado.
No hay comentarios:
Publicar un comentario