Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: ‭lipman en 14 Febrero 2016, 18:49 pm



Título: Correr un script sin mantener la terminal con ssh abierta?
Publicado por: ‭lipman en 14 Febrero 2016, 18:49 pm
Estoy trabajando con un server ubuntu al cual me conecto desde Windows con SSH (Cygwin) y tengo que ejecutar tareas que llevan muchisimo tiempo.

Existe alguna manera de ejecutar scripts sin tener que mantener la conexión abierta? Alguna manera de dejar al server corriendo un script todo el rato? Pensaba que podía hacer esto usando lo de "&" para dejarlo en background pero si cierro la terminal (ergo la conexión se pierde), se deja de ejecutar.

He pensado que una solución muy sucia sería hacerlo con crontab y que se ejecute una vez, pero quiero evitar esto por todos los medios.

Alguna idea?

Un saludo!


Título: Re: Correr un script sin mantener la terminal con ssh abierta?
Publicado por: MinusFour en 14 Febrero 2016, 19:04 pm
Para eso esta screen y tmux.

Código:
screen
./script.sh

Presionas <Ctrl+A> - D y listo, el script esta corriendo.

Para reanudar:

Código:
screen -r

Si solo quieres que el script termine de ejecutarse tienes que usar nohup para que no se cierre el proceso cuando la session termina.

Código:
nohup comando &


Título: Re: Correr un script sin mantener la terminal con ssh abierta?
Publicado por: engel lex en 14 Febrero 2016, 19:08 pm
solo para aportar una solución diferente (A pesar que la de -4 es la más acertada e ideal para mi) recuerda que en linux tienes los terminales tty,  presionando ctrl+alt+f# (del f1 al f6) accedes a los 6 terminales tty, podrías hacerlo así... con f7 u f8 (depende de tu caso) vuelves al escritorio


Título: Re: Correr un script sin mantener la terminal con ssh abierta?
Publicado por: ‭lipman en 14 Febrero 2016, 19:11 pm
Muchas gracias a los dos. Particularmente veo muy interesante la opción de usar screen. No entiendo cómo podía desconocer ese comando cuando es tan útil para trabajar remotamente. Hasta ahora siempre dejaba la terminal abierta.

Muchisimas gracias!


Título: Re: Correr un script sin mantener la terminal con ssh abierta?
Publicado por: engel lex en 14 Febrero 2016, 19:24 pm
los screen son muy potentes y utiles! a demás puedes crear multiples, con "screen -S nombre" creas las que quieras con nombres, así puedes acceder a multiples procesos remotamente de manera simultanea...  creo que con "screen -ls" muestras las activas