Название подводит итог. Запуск wall <<< "TEST"
показывает сообщение в любом TTY, но не в каких-либо терминалах с графическим интерфейсом (протестировано с помощью gnome-terminal
и sakura
).
У меня есть несколько сценариев мониторинга батареи и температуры, которые основаны на wall
сообщении, и после недавнего обновления до 16.04 я заметил, что они перестали работать в GUI.
Я не могу определить, является ли это ошибкой или что-то мешает отображению сообщений в графическом интерфейсе.
Как мне действовать?
Дополнительная информация:
Выполнение byobu
в графическом терминале позволяет видеть сообщения на стене
Да он верный, что терминал гнома это не обновляет учетные записи, en из-за этого, я пытаюсь выяснить другое решение:
ps -ef | grep " pts/" | awk '{print $6}' | sort -u | tee terminals4message.txt
, Это помогает Вам перечислить все настольные терминальные сеансы.
Другой способ отправить сообщение в активные настольные терминальные сеансы
echo "$MESSAGE_to_send" | sudo tee /dev/pts/$terminal_number
ps -ef | grep " tty" | awk '{print $6}' | sort -u | grep -v "pts" | tee terminals4message.txt
, Это помогает Вам перечислить все сессии имущества
cat terminals4message.txt | while read TTY_TO; do echo -e "SYSTEM MESAGE: $(date) - \n MESAJ" | sudo tee /dev/$TTY_TO 1>/dev/null
alias wall="your_wall_replacement.sh"
Таким образом, Вы не должны удалять текущую стену Жаль, если что-то не правильно, поскольку кто-то не позволял мне сфокусироваться на этом предмете..., если Вы, парни замечают что-то нечетное, оставляете комментарий.
10x
Из-за пути терминал гнома работает, wall
не регистрирует его как терминал. Более полное объяснение может быть найдено здесь . Я предполагаю, что то же верно для сакуры.
На основе ответ Stancu Mihai , я создал сценарий , который подражает пути wall
обычно работы, включая баннер с именем пользователя и меткой времени (используйте-n или - nobanner для удаления баннера). Сценарий в настоящее время не поддерживает чтение сообщения из файла.
можно заменить нормальное wall
команда с этим путем добавления псевдонима в ~/.bashrc
:
echo 'alias wall="~/your/path/to/wall.sh"' >> ~/.bashrc
использование В качестве примера:
$ wall "some message"
Broadcast message from username@hostname (pts/19) (Wed Mar 29 11:07:35 2017):
some message
$ wall -h
Usage:
wall [options] [message]
Write a message to all users.
Options:
-n, --nobanner do not print banner
-h, --help display this help and exit
Поскольку другие предполагают, что существует множество методов, я предлагаю более прямой (простой)
метод, который я нашел (заимствование
echo "$ MESSAGE_to_send" | sudo tee / dev / pts / $ номер_терминала:
здесь обсуждается.)
echo "Your message" > /dev/pts/$terminal-no
Здесь номер терминала
может быть получен из
другой терминал через команду "tty".
tty
/ dev / pts / 12