Есть ли способ сделать так, чтобы сообщения на стене отображались пользователям настольных компьютеров?

Есть ли способ сделать так, чтобы сообщения на стене отображались пользователям настольных компьютеров?

Допустим, я нахожусь вне дома, подключаюсь по ssh на своем домашнем компьютере. По какой-то причине мне нужно его перезагрузить.

# shutdown -r +10

Это отправляет предупреждающее сообщение каждую минуту черезwall, который совершенно невидим при обычном использовании рабочего стола, например, моими родителями.

Есть ли способ, чтобы wallсообщения попадали на рабочий стол, например, через уведомления?

решение1

Внутренности wallи настолько заблокированы и устарели, что извлечь из них сообщение, как только оно там окажется, фактически невозможно.

Единственная реальная идея, выдвинутая для этого (проблема уже обсуждалась, много раз) — это изменить скрипты shutdownи rebootтак, чтобы они либо делали что-то доступным через dbus, либо (поскольку мы имеем дело только с одним компьютером и одним исправлением) вы могли бы просто заставить его отправлять сообщение notify-send.

Ониявляютсяпросто скрипты, чтобы вы могли просто взломать их. Но я думаю, что это, вероятно, дело, за которое стоит бороться. Отправьте баг против Ubuntu и добавьте свои исправления (просто убедитесь, что они могут работать без необходимости отправлять уведомление, если нет среды X). Именно такого рода удобство использования нам нужно.

Я никогда раньше не слышал gxmessage, но я бы использовал notify-send.

Полное решение должно было бы учитывать возможность использования нескольких дисплеев (например, многоэкранного режима, удаленных пользователей и т. д.), но, к счастью, вчера я написал код для этой части:

for display in `ps aux | grep -oE "/usr/bin/X\s[^ ]+" | cut -d " " -f 2`; do
    DISPLAY=$display notify-send -u critical 'Shutdown notice' 'Save all your work. THE SYSTEM IS GOING DOWN!!' -i /usr/share/pixmaps/gnome-computer.png
done

(Я использую export вместо флага -displayor --display, потому что не знаю, что notify-sendтребуется)

решение2

Вы можете отправить сообщение вручную с помощью zenity

zenity --warning --text "badp's about to restart the computer" --display=:0

Конечно, вы можете включить это в сценарий.

решение3

AFAIK нет X-клиента для команды wall, чтобы отображать эти сообщения в графической среде. Вы можете использоватьgxmessageприложение для отображения всплывающих окон, но тогда вам придется написать скрипт самостоятельно.

решение4

На моей системе с KDE Plasma 5.27.10 на Wayland,wall делаетработа. Я могу войти по ssh, wallотправить сообщение, и он покажет уведомление навсеэкземпляры плазмы. (Если я переключаю пользователей, а затем отправляю сообщение, я увижу его у текущего пользователя, а если переключусь обратно, я увижу его там, с соответствующей временной меткой). Он также указывает, какой пользователь отправил сообщение.

GNOME Shell 45.3 на Waylandнесообщения поддержки wall.

Я бы рекомендовал выполнить команды wили who, чтобы определить, находятся ли они в GNOME или другой среде DE, которая не поддерживает их wallдолжным образом.

Связанный контент