ウォールメッセージをデスクトップユーザーに表示する方法はありますか?


9

自宅から離れて、自宅のコンピュータでssh-ingしているとしましょう。何らかの理由で、再起動する必要があります。

# shutdown -r +10

これはを介して毎分警告メッセージを送信しますwall。これは、たとえば私の両親による通常のデスクトップの使用では完全に見えません。

wallメッセージが通知などを介してデスクトップに到達する方法はありますか?


1
この投稿への回答の情報のおかげで、私は必要なことだけを実行するPythonプログラムを一緒にハックすることができました。libnotify-binパッケージにより異なります。
10

回答:


8

との内部wallは非常にブロックされており、古くなっているため、いったんそこにメッセージを入れると、そこからメッセージを引き出す方法は実際にはありません。

このために提案された唯一の本当のアイデア(問題は以前に何度も議論されていますshutdownrebootスクリプトを変更して、dbusを介して何かを利用できるようにするか、(1台のコンピューターと1つの修正のみを扱うため)通知送信メッセージを送信させるだけです。

これら単なるスクリプトなので、ハックするだけです。しかし、これはおそらく推進する価値のある原因だと思います。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

(私は-displayor --displayフラグの代わりにエクスポートを使用していnotify-sendますが、どちらがかかるかわかりません)


gxmessageは古代のアプリです。考えてみると、dbusとnotify-sendの方がはるかに良いオプションです。たぶん、私は全能で何かを仕上げることができます。
2010

ええ、何が一番いいのかわかりません。zenityログアウトする前に物事を保存するためにスクランブルをかけている場合、警告は煩わしい場合があります...しかし、notify-send通知は無視される場合があります。
Oli

1
通知送信通知は無視できることは事実ですが、数回(たとえば10分)表示された場合、それらは機能する可能性があります。
OpenNingia 2010

ただし、これを機能させるには、XAUTHORITY環境変数を正しく設定する必要があります。
10

1
DISPLAY=$display notify-send...そのコマンドのDISPLAYの値のみをエクスポートします。ここで問題になるわけではありませんが、他の場所では便利ですが、IMHOは少しクリーンです。

2

zenityを使用して手動でメッセージを送信できます

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

もちろん、これをスクリプトに含めることもできます。


スーパーユーザーとしても、ディスプレイを開くことができません(適切なユーザーとしてsudoを実行する必要があります):(
badp

できるはずです-コロンが入っていることを確認してください(で=:0はありません=0
misterben 2010

できませんでした。XAUTHORITY環境変数も正しく設定する必要があります。
10

1

pttyをクレイター化し、(writeまたはwallから)書き込まれたメッセージをリッスンし、それをGUI出力に転送するスクリプトを作成できるはずです。


0

私の知る限り、グラフィカル環境でこれらのメッセージを表示するためのwallコマンド用のXクライアントはありません。ポップアップを表示するためにgxmessageアプリを使用できますが、その場合はスクリプトを自分で作成する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.