linux - programacion - Ejecute un comando en un shell y siga ejecutando el comando cuando cierre la sesiĆ³n
programacion shell linux ejemplos (9)
Intenta usar la pantalla GNU . Le permite tener varios proyectiles abiertos a la vez. Y puedes desconectarte de esas conchas (es decir, cerrar la sesión con masilla) y seguirán haciendo lo suyo.
Estoy usando Putty para conectarme a un servidor remoto. Lo que quiero saber es si hay alguna forma de escribir mis comandos y permitirles seguir funcionando después de cerrar la sesión con Putty. La razón de esto es que no quiero mantener la computadora encendida todo el tiempo. ¿Hay alguna manera de hacer esto?
Actualiza con la solución
Para mi pregunta, ya que se presenta, la mejor solución es utilizar uno de los comandos proporcionados, como nohup , porque no tiene que instalar ningún software adicional. Pero si estás en la misma pantalla de uso de problemas, instálala y úsala. Es asombroso.
He seleccionado la respuesta de Norman Ramsey como favorita porque propongo varias soluciones usando comandos y pantalla . Pero compruebe las otras respuestas especialmente la de PEZ, luego obtendrá una idea de qué pantalla puede hacerlo.
Lo que estás buscando es nohup .
Vea el enlace de la wiki para saber cómo usarlo.
Si no puede usar la screen
(porque, por ejemplo, su sesión SSH está siendo impulsada por programación), también puede usar daemonize para ejecutar el programa como daemon.
./command & disown
la pantalla es la mejor
Tratar:
pantalla -dmS "MyTail" tail -f / var / log / syslog
Este comando de inicio en segundo plano.
Use screen -r para listar y / o screen -r Mytail para ingresar a la sesión.
Si más usuarios necesitan acceder a la misma sesión, use: screen -rx MyTail, y ambos o más usuarios comparten la sesión.
Una forma en que funciona bien para mí es at
.
at
trabajos como cron, pero para un trabajo de una sola vez. Lo utilicé hoy para descargar un archivo grande sin tener que mantener viva mi sesión.
por ejemplo:
$ at 23:55
at> wget http://file.to.download.com/bigfile.iso
at> ^D
Pasa at
vez (en el futuro) y le da un aviso. Ingrese los comandos que desea ejecutar en ese momento y presione ctrl + d. Puede salir de su sesión y ejecutará los comandos a la hora especificada.
Wikipedia tiene más información sobre at
.
ssh localhost && ./command && exit
nohup
, disown
y screen
son buenos, pero la screen
es la mejor porque, a diferencia de las otras dos, la screen
te permite desconectarte del servidor remoto, mantener todo en funcionamiento y luego volver a conectarte para ver qué está sucediendo. Con nohup
y disown
no puede reanudar la interacción.
¡pantalla! Es lo mejor desde el pan rebanado. (Sí, sé que otros ya lo han sugerido, pero es tan bueno que todo el mundo debería sumarse y sugerirlo también).
la pantalla es como, por ejemplo, ummmm ... como usar VNC o similar para conectarse a una parada de la GUI, pero para las ventanas de la consola de comandos. Puede tener varias "ventanas" de shell abiertas a la vez en la misma sesión de pantalla. Puedes hacer cosas como estas:
- Inicie una sesión de pantallas con "pantalla -dR" (acostumbrarse a usar -dR)
- ejecutar algunos comandos en una ventana
- presione CTRL - A , C para crear una nueva ventana, abra un archivo allí en vim
- presione CTRL - A , 0 para volver a la primera ventana y ejecutar algún comando en el archivo que acaba de editar
- CTRL - A , 1 para volver a tu sesión de vim
- CTRL - A , C para otra ventana y tal vez haga "sudo - su" (porque simplemente necesita un shell raíz completo)
- CTRL - A , 0 y comienza un proceso en segundo plano
- CTRL - A , C para crear una nueva ventana, "tail -f" el registro para ese proceso de fondo
- CTRL - A , d para desconectar la pantalla y luego CTRL - D para desconectarse del servidor
- Ir de vacaciones por tres semanas
- Inicie sesión nuevamente en el servidor y emita la "pantalla -dR" para conectarse a su sesión de pantalla existente
- revise el registro en la cuarta ventana con CTRL - A , 3 (es como si hubiera estado allí mirándolo todo el tiempo)
- CTRL - A , 1 para recuperar esa sesión de vim nuevamente
- ¿Supongo que estás empezando a entender la situación ahora? =)
Es como magia. He estado usando la pantalla durante más tiempo del que puedo recordar y todavía estoy totalmente sorprendido de lo increíble que es.
EDITAR : Solo quiero mencionar que ahora también hay tmux . Muy parecido a la pantalla , pero tiene algunas características únicas, dividiendo las ventanas siendo la más destacada.