Tengo un script en el servidor. Si lo ejecuto en el servidor localmente, no hay problema.
<user@server> ~ % restart_forms A
forms [A] is Restarting
<user@server> ~ %
Sin embargo, si lo ejecuto de forma remota desde el cliente (otra máquina Linux), será así
<user@client> ~ % ssh server /path/restart_forms A
forms [A] is Restarting
Esta pantalla se cuelga y nunca vuelve a los controles; Tengo que usar Ctrl+c para finalizar el script cada vez y luego volver a los controles.
Sé que esto probablemente esté relacionado con cosas stdin, stdout y stderr. Por ahora he intentado ejecutar este fondo.
<user@client> ~ % ssh server /path/restart_forms A &
También lo intenté
<user@client> ~ % ssh server /path/restart_forms A >/dev/null 2>&1 &
Todo lo anterior falla y da el mismo problema. (No puedo crear una pantalla para ejecutarla por algunos motivos comerciales)
¿Alguien tiene alguna idea? Gracias
Actualización: cuando lo intento ps -ef | grep restart_forms
en el cliente, puedo ver que este script todavía se está ejecutando en el cliente. No debería ser así.
Respuesta1
Si necesita ejecutar un script que no termina por sí solo y desea ejecutarlo sobre algo así, ssh
es mejor ejecutarlo en una sesión screen
o tmux
, de modo que su terminal esté separado del que se ssh
usa. De esa manera, ssh
podrá salir después de invocar el script, y el script podrá continuar todo el tiempo que desee.
Para hacer eso, haga algo como lo siguiente:
ssh <user>@<host> screen -d -m restart_forms A