Tengo un montón de servidores, en los que ejecuto experimentos usando screen
. El procedimiento es el siguiente:
ssh
al servidor XXX- lanzamiento
screen
- iniciar experimentos en unas pocas pestañas
- despegar
screen
- desconectarse del servidor
Mientras se ejecutan los experimentos, puedo encontrar fácilmente en qué servidores están ssh
yendo a todos los servidores y enumerando mis procesos en ejecución (usando top
o ps
).
Sin embargo, una vez que los experimentos hayan finalizado, ¿cómo podría encontrar en qué servidores tengo abierta una sesión de pantalla (para poder ver el resultado, reiniciarlos, etc.)?
PD: mis experimentos también imprimen su salida a archivos ... pero este no es el punto de mi pregunta.
fuente
ls -R /var/run/screen/S-root/ | grep "NamingConvention"
. Las pantallas se guardan en el<pid>.<screen_name>
formato. Esto es útil para los scripts de bash. Entonces, si tiene una pantalla con nombre0000.NamingConvention
, literalmente devolverá el nombre de las pantallas que está buscando en un formato fácil de analizar.El comando screen -list puede ser lo que quieres.
Ver al hombre
fuente
Si bien la respuesta de joshperry es correcta, me parece muy molesto que no le diga el nombre de usuario (el que configuró con la opción -t), eso es realmente lo que usa para identificar una sesión. (no es su culpa, por supuesto, eso es un defecto de la pantalla)
Es por eso que en su lugar uso un script como este:
ps auxw|grep -i screen|grep -v grep
fuente
ls
salida. Si lo necesita, puede mantener la opción -t también.screen -rd <sessionname>
No estoy realmente seguro de su pregunta, pero si todo lo que realmente quiere es una lista de la sesión de pantalla abierta actualmente, intente:
fuente
Si desea ver la pantalla en la consola, debe escribir el comando
si tiene que acceder a la pantalla, debe usar el siguiente comando
Escriba
PWD
en la línea de comando para verificar en qué carpeta se encuentra actualmentefuente
En la mayoría de los casos, un
screen -RRx $username/
testamento será suficiente :)Si todavía desea enumerar todas las pantallas, coloque el siguiente script en su ruta y llámelo pantalla o lo que quiera:
Se comportará exactamente como la pantalla, excepto para mostrar todas las sesiones de pantalla, cuando se da la opción -ls-all como primer parámetro.
fuente
Múltiples personas ya han señalado que
enumeraría las sesiones de pantalla.
Aquí hay otro truco que puede ser útil para usted.
Si agrega el siguiente comando como última línea en su archivo .bashrc en el servidor xxx, se volverá a conectar automáticamente a su sesión de pantalla al iniciar sesión.
Esperamos que te sea útil.
fuente
para ver qué pantalla se está ejecutando en caso de que haya usado el comando
fuente
Entonces, ¿estás usando la pantalla para mantener los experimentos ejecutándose en segundo plano, o qué? Si es así, ¿por qué no comenzarlo en segundo plano?
Y si está preguntando cómo obtener una notificación del trabajo que hice, ¿qué le parece unir el experimento con un comando de correo?
fuente