Haz todo lo posible por comprender el código correctamente antes de utilizarlo a tu trabajo si tquieres aportar algo puedes compartirlo con nosotros.
Solución:
Tuve este problema en un programa que escribí hace un año; resulta que la respuesta es bastante complicada. Necesitará usar nohup así como la redirección de salida, como se explica en el artículo de wikipedia sobre nohup, copiado aquí para su comodidad.
Nohuping trabajos en segundo plano es útil, por ejemplo, cuando se inicia sesión a través de SSH, ya que los trabajos en segundo plano pueden hacer que el shell se cuelgue al cerrar la sesión debido a una condición de carrera. [2]. Este problema también se puede solucionar redirigiendo los tres flujos de E/S:
nohup myprogram > foo.out 2> foo.err < /dev/null &
Esta ha sido la forma más limpia de hacerlo para mí: -
ssh -n -f [email protected] "sh -c 'cd /whereever; nohup ./whatever > /dev/null 2>&1 &'"
Lo único que se ejecuta después de esto es el comando real en la máquina remota
Redirigir fd's
La salida debe redirigirse con &>/dev/null
que redirige tanto stderr como stdout a /dev/null y es sinonimo de >/dev/null 2>/dev/null
o >/dev/null 2>&1
.
parántesis
La mejor manera es usar sh -c '( ( command ) & )'
donde comando es cualquier cosa.
ssh askapache 'sh -c "( ( nohup chown -R ask:ask /www/askapache.com &>/dev/null ) & )"'
Concha Nohup
También puede usar nohup directamente para iniciar el shell:
ssh askapache 'nohup sh -c "( ( chown -R ask:ask /www/askapache.com &>/dev/null ) & )"'
buen lanzamiento
Otro truco es usar nice para ejecutar el comando/shell:
ssh askapache 'nice -n 19 sh -c "( ( nohup chown -R ask:ask /www/askapache.com &>/dev/null ) & )"'
Si haces scroll puedes encontrar las explicaciones de otros creadores, tú igualmente puedes dejar el tuyo si dominas el tema.