コマンドラインを使用して実行中のすべてのXモニターに通知を表示したいと思います。 (そしてコンソール実行)
それは次のとおりです。
notify-send-all 'Warning' 'Nuclear launch in 5 minutes, please evacuate'
これができるプログラムはありますか?そうでない場合は、bashを使用して実装できますか?
ベストアンサー1
Command Wall を使用してすべてのコンソールにメッセージを送信できます。
X から通知を送信するには、通知の送信を使用して、現在のモニターの現在のユーザーに通知を送信できます。 (あなたの質問で判断すると、すでに知っているようです。)いくつかのbashスクリプトを使用してこれを構築できます。デフォルトでは、どのユーザーがどのX-Displayにいるかを調べる必要があります。この情報があれば、次の通知を使用して送信できます。
DISPLAY=:0 sudo -u fschmitt notify-send "Message"
ここで fschmitt はディスプレイ 0 のユーザーです。 「who」コマンドの出力を解析して、すべてのユーザーとその表示を見つけることができます。出力は次のとおりです
[edinburgh:~]$ who
markmerk3 tty7 2010-09-23 10:59 (:0)
markmerk3 pts/1 2010-09-30 13:30 (:0.0)
fschmitt pts/2 2010-10-08 11:44 (ip-77-25-137-234.web.vodafone.de)
markmerk3 pts/0 2010-09-29 18:51 (:0.0)
seamonkey pts/6 2010-09-27 15:50 (:1.0)
markmerk3 pts/5 2010-09-27 14:04 (:0.0)
seamonkey tty8 2010-09-27 15:49 (:1)
markmerk3 pts/13 2010-09-28 17:23 (:0.0)
markmerk3 pts/3 2010-10-05 10:40 (:0.0)
X セッションを実行する 2 人のユーザー、つまりモニター 0 の markmerk3 とモニター 1 の seamonkey があることがわかります。私の考えでは、tty [0-9] *をgrepし、行の末尾に(:[0 -9.] *)があることを確認してコンソールログインを削除してディスプレイIDを抽出する必要があると思います。括弧の間に文字列があります。