Der Titel fasst es zusammen. Beim Ausführen wall <<< "TEST"
wird die Nachricht in einem beliebigen TTY angezeigt, jedoch nicht in einem GUI-Terminal (getestet mit gnome-terminal
und sakura
).
Ich habe mehrere Skripte zur Batterie- und Temperaturüberwachung, die auf wall
einer Meldung beruhen , und nach dem letzten Upgrade auf 16.04 habe ich festgestellt, dass sie in der GUI nicht mehr funktionieren.
Ich kann nicht feststellen, ob dies ein Fehler ist oder ob etwas die Anzeige der Nachrichten in der GUI verhindert.
Wie soll ich vorgehen ?
Zusätzliche Information:
Das Ausführen byobu
in einem GUI-Terminal ermöglicht das Anzeigen von Wandnachrichten
xmessage
,gxmessage
odernotify-send
)notify-send
funktioniert nur für Kurznachrichten und nur in der GUI.wall
Es ist sehr praktisch, einen Befehl für alle Terminals zu verwenden, anstatt etwas für tty UND für gui UND für alle anderen Sitzungen zu schreiben, die sich möglicherweise auf anderenDISPLAY
s befinden. Dies ist also keine sehr gute Alternative, zumindest imhowho
zuvor im Gnome-Terminal ausgeführt wurden, werden alle geöffneten Registerkarten angezeigt, jedoch nicht mehr. Wall sendet eine Nachricht nur an die Terminalsitzungen, die Anmeldedatensätze aktualisieren. Mate verwendet standardmäßig ein anderes Terminal. Ich habe das schon vor langer Zeit herausgefunden, aber nie eine Antwort gepostet. Werde das irgendwann in dieser Woche tun.Antworten:
Aufgrund der Funktionsweise des Gnome-Terminals wird
wall
es nicht als Terminal registriert. Eine ausführlichere Erklärung finden Sie hier . Ich gehe davon aus, dass dies auch für Sakura gilt.Basierend auf der Antwort von Stancu Mihai habe ich ein Skript erstellt , das die übliche Funktionsweise nachahmt
wall
, einschließlich des Banners mit Benutzername und Zeitstempel (verwenden Sie -n oder --nobanner, um das Banner zu entfernen). Das Skript unterstützt derzeit nicht das Lesen der Nachricht aus einer Datei.Sie können den normalen
wall
Befehl durch diesen ersetzen, indem Sie einen Alias hinzufügen in~/.bashrc
:Anwendungsbeispiel:
quelle
Ja, es stimmt, dass das Gnome-Terminal keine Anmeldedatensätze aktualisiert. Aus diesem Grund versuche ich, eine andere Lösung zu finden:
Auf diese Weise können Sie alle Desktop-Terminalsitzungen auflisten.
Eine andere Möglichkeit, eine Nachricht an aktive Desktop-Terminalsitzungen zu senden
Auf diese Weise können Sie alle Pty-Sitzungen auflisten
Danach können Sie zu Ihrem ~ / .bashrc hinzufügen.
alias wall="your_wall_replacement.sh"
Auf diese Weise müssen Sie die aktuelle Wand nicht löschenTut mir leid, wenn etwas nicht stimmt, da mich jemand nicht auf dieses Thema konzentrieren ließ ... Wenn ihr etwas Seltsames bemerkt, hinterlasst bitte einen Kommentar.
10x
quelle
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; done
Da andere vorschlagen, dass es viele Methoden gibt, habe ich hier eine direktere (einfache) Methode angegeben, die ich gefunden habe (Übernahme der
echo "$MESSAGE_to_send" | sudo tee /dev/pts/$terminal_number:
hier diskutierten).Hier
terminal-no
könnte das vom anderen Terminal durch den Befehl "tty" erhalten werden./dev/pts/12
quelle