254 votos

Hacia un proceso de ejecución ya pantalla

Mi trabajo de oficina, de forma rutinaria me ve conectado a una máquina Linux a través de VNC.

A veces empiezo un remoto puesto de trabajo en la consola, y darse cuenta después de que se ejecuta mucho más de lo esperado. (Debería haber empezado que uno debajo de la Pantalla en el primer lugar...)

No quiero mantener mi estación de trabajo que ejecuta la noche a la mañana sólo para mantener la sesión VNC abierta; me gustaría que pase ya de ejecución remota de trabajo en una sesión de Pantalla (en el control remoto de la caja), por lo que puede apagar la estación de trabajo, y vuelva a conectar la mañana siguiente).

Cómo se puede hacer esto, en todo caso?

252voto

DaveJohnston Puntos 815

Eche un vistazo a reptyr, que hace exactamente eso. La página de github tiene toda la información.

reptyr - Una herramienta para la "re-ptying" de los programas.

reptyr es una utilidad para la toma de una existente programa de ejecución y la fijación de a un nuevo terminal. Comenzó un proceso de larga duración a través de ssh, pero tiene que salir y no quiero interrupción? Acaba de empezar una pantalla, utilice reptyr apoderarse de ella, y luego matar a los sesión de ssh y la cabeza en casa.

El USO de

reptyr PID

"reptyr PID" va a agarrar el proceso con el identificador PID y adjuntarlo a su de la terminal actual.

Tras la colocación, el proceso se llevará a de entrada y de salida de escritura para el nuevo terminal, incluyendo ^C y ^Z. (Por desgracia, si de fondo, usted todavía tendrá que ejecutar "bg" o "fg" en la vieja terminal. Este es probablemente imposible de solucionar en un forma razonable, sin parchar tu shell.)

51voto

coobird Puntos 70356

No puedes hacerlo, fácilmente. Yo sugeriría convirtiéndolo en un hábito para empezar la pantalla como lo primero que haces después de abrir una consola.

Sin embargo, para el problema real, hay otra cosa que podrías intentar: después de haber iniciado su trabajo desde la terminal, de fondo lo tecleando ctrl-z y luego bg . Después de eso, separar el trabajo de su padre shell; en bash haría disown -h %<jobid> . Después de eso, con seguridad puede cerrar la terminal y el trabajo continuará funcionando.

40voto

pc1oad1etter Puntos 3910

Como estás usando Linux, ¿usando retty dentro de la pantalla recién lanzada el proceso?

$ screen -S my_process
$ retty $(pgrep my_process)
/redraw

HTH

Saludos,

-1voto

Linulin Puntos 117

Mejor trabajando, aún más sofisticada, métodos fueron investigados en movimiento un proceso a otro terminal blogpost.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: