El título lo resume. La ejecución wall <<< "TEST"muestra el mensaje en cualquier TTY pero no en ningún terminal GUI (probado con gnome-terminaly sakura).
Tengo varios scripts de monitoreo de batería y temperatura que dependen wallde un mensaje y después de una actualización reciente a 16.04, noté que dejaron de funcionar en la GUI.
No puedo determinar si esto es un error o algo impide que los mensajes se muestren en la GUI.
Cómo debo proceder ?
Información adicional:
Ejecutar byobuen una terminal gui permite ver mensajes en el muro

xmessage,gxmessageonotify-send)notify-sendfunciona solo para mensajes cortos y solo en GUI.walltiene una buena conveniencia de usar un comando para todos los terminales, en lugar de escribir algo para tty AND para gui AND para todas las demás sesiones que pueden estar en otrosDISPLAYs, por lo que esta no es una muy buena alternativa, al menos en mi opiniónwhoantes en la terminal gnome, mostraría todas tus pestañas abiertas, pero ya no. Wall envía mensajes solo a las sesiones de terminal que actualizan los registros de inicio de sesión. Mate usa una terminal diferente por defecto. Me di cuenta de esto hace mucho tiempo, pero nunca publiqué una respuesta. Lo hará en algún momento esta semana.Respuestas:
Debido a la forma en que funciona gnome-terminal,
wallno lo registra como terminal. Una explicación más completa se puede encontrar aquí . Supongo que lo mismo es cierto para Sakura.Basado en la respuesta de Stancu Mihai , he creado un script que imita la forma en que
wallgeneralmente funciona, incluido el banner con el nombre de usuario y la marca de tiempo (use -n o --nobanner para eliminar el banner). El script actualmente no admite leer el mensaje de un archivo.Puede reemplazar el
wallcomando normal con este agregando un alias en~/.bashrc:Ejemplo de uso:
fuente
Sí, es cierto que gnome-terminal no actualiza los registros de inicio de sesión, por eso trato de encontrar otra solución:
Esto le ayuda a enumerar todas las sesiones de terminal de escritorio.
Otra forma de enviar un mensaje a sesiones activas de terminal de escritorio
Esto le ayuda a enumerar todas las sesiones pty
Después de eso, puede agregar a su ~ / .bashrc
alias wall="your_wall_replacement.sh"De esta manera, no necesita eliminar el muro actualLo siento si algo no está bien, ya que alguien no me dejó concentrarme en este tema ... si ustedes notan algo extraño, por favor dejen un comentario.
10x
fuente
ps -ef | grep -e " tty" -e " pts/" | tr -s " " | cut -d " " -f 6 | sort -u | while read TTY; do echo "MESSAGE" | tee /dev/$TTY 1>/dev/null; doneComo otros sugieren que hay muchos métodos, pongo aquí un método más directo (fácil) que encontré (adopción de lo
echo "$MESSAGE_to_send" | sudo tee /dev/pts/$terminal_number:discutido aquí).Aquí
terminal-nopodría obtenerse del otro terminal a través del comando "tty"./dev/pts/12fuente