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

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

# shutdown -r +10

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

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

4 ответа

Решение

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

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

Они просто сценарии, так что вы можете взломать их. Но я думаю, что это, вероятно, причина, которую стоит настаивать. Отправьте сообщение об ошибке в 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

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

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

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

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

Вы должны быть в состоянии написать сценарий, который создает ptty и прослушивает написанные сообщения (от записи или стены), а затем перенаправляет их на выход GUI.

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

Другие вопросы по тегам