
Допустим, я нахожусь вне дома, подключаюсь по 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 вместо флага -display
or --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
должным образом.