Salí de la oficina antes con una ventana de terminal activa que ejecutaba un script en un servidor Centos 7. Ahora tengo SSHing desde casa y quiero ver a dónde llega. es posible? ¿Puedo volver a unirme a la misma ventana de terminal desde aquí?
8
strace -e write -p 12345
(sustituir el pid del proceso que le interesa). Otra opción es:strace -e read -p 12345
(sustituir el pid del emulador de terminal). En principio, sería posible escribir un programa para utilizar laptrace
llamada del sistema para recopilar la información de la misma manera que lostrace
hace, y escribirla directamente en su propio terminal. No sé si existe dicho programa, pero cubriría los requisitos especificados en su pregunta.Respuestas:
Como @Sven mencionó, la mejor opción es usar
screen
otmux
. Estas son herramientas conocidas como "multiplexores terminales". Le permiten crear sesiones de shell que se pueden adjuntar y desacoplar de inicios de sesión reales. Estas herramientas no solo son útiles para verificar su trabajo desde otro terminal, sino que tienen otras características, como compartir su sesión con otro usuario y asegurarse de que su comando no se detenga si pierde la conexión a Internet. Si está buscandoscreen
, puede intentar buscar "Pantalla GNU". Ambas herramientas están disponibles en la mayoría de los sistemas Linux.Por lo general, comenzaría la sesión y luego ejecutaría su comando dentro de esa sesión. Sin embargo, si ya ha iniciado el comando, es posible que desee buscar un artículo sobre cómo mover un comando en ejecución a una sesión de pantalla. Sin embargo, no recomendaría probar esto la primera vez en algo importante. Esta pregunta puede ser de alguna utilidad:
Mover un proceso que ya se está ejecutando a Screen
Si solo desea verificar si el proceso se está ejecutando, mi herramienta favorita sería extraña. Esta herramienta le permite ver cada llamada al núcleo realizada por un proceso. Puede tomar algo de habilidad entender el resultado, pero al menos debería darte una idea si el proceso se está ejecutando, y si observas lo suficientemente cerca, podría captar los nombres de archivo que está abriendo. Para hacer eso, primero, encuentre el PID, tal vez mediante una búsqueda
ps aux|grep yourcommand
, y luego:Puedes ^ C para salir de eso. Es posible que no le permita volver a adjuntar, pero si solo desea saber qué está haciendo, eso debería ser suficiente.
fuente
Una forma de hacerlo: TMUX
Como la mayoría de las respuestas ya señalaron, si está en una sesión SSH existente, usted usa
tmux
(oscreen
) con el comandoAhora está en una nueva sesión de bash, en la que puede iniciar su programa / comando. Puede cerrarlo en cualquier momento (pero no con CTRL + D, en lugar de cerrar la ventana) y volver a él más tarde creando una conexión SSH con el mismo usuario en la misma máquina y escribiendo el comando
También puede tener varias
tmux
sesiones dándoles nombres conPuede ver una lista de todas las
tmux
sesiones abiertas para su usuario cony adjuntar a una
tmux
sesión con nombre conEncuentre un completo
tmux cheat sheet
aquí .Para un programa en ejecución
Las respuestas hasta ahora parecen no ser conscientes del hecho de que puede mover un proceso que ya se está ejecutando a otro
tmux
/screen
como señala esta respuesta . El programa que hace el trabajo se llamareptyr
y en Ubuntu / Debian puedes instalarlo con un simpleDespués de eso, descubra el ID de proceso de su programa en ejecución (por ejemplo con
top
ohtop
), inicie unatmux
sesión y un simplevolverá a conectar el proceso en ejecución a su
tmux
sesión bash.fuente
En el futuro, puede usar
screen
otmux
y luego puede volver a conectar una sesión en ejecución.fuente
He estado usando byobu y me parece increíblemente poderoso. Byobu es un gestor de ventanas y multiplexor de terminales basado en texto de código abierto GPLv3.
Por lo tanto, puede abrir una sesión de byobu simplemente escribiendo "byobu". Y luego puede crear una nueva pestaña con Ctrl + F2, y moverse entre pestañas con Ctrl + F3 para retroceder, Ctrl + F4 para avanzar. Puede cerrar una pestaña con Ctrl + F6 o desconectarse de una sesión con Shift + F6. Luego se vuelve a adjuntar a la sesión simplemente escribiendo "byobu" nuevamente.
Byobu admite divisiones verticales y horizontales, pantalla completa entre otras características sofisticadas. Está disponible en Ubuntu / Debian, CentOS / Fedora / RedHat y FreeBSD.
fuente
tmux
yscreen
que muchos encuentran proporciona una mejor experiencia de usuario que la que ofrecen de inmediato .Como ya se señaló, recomiendo usarlo
tmux
oscreen
en el futuro, pero eso solo funciona si lo pensaste de antemano.He estado en tu situación varias veces. Si el terminal que dejó en funcionamiento estaba en la PC de escritorio de su oficina, puede usar SSH en su PC e iniciar un servidor VNC. De esa manera, al menos puede verificar la terminal abierta.
fuente
Como todos mencionaron, se puede usar tmux. La pantalla no es útil cuando desea compartir la pantalla con varias personas.
Sobre todo, recomiendo a todos que prueben https://tmate.io/ para dar acceso temporal, incluso a localmachine. tmate es compatible con todo lo anterior :)
https://tmate.io/
fuente