IT用語集 › プログラミング › WM_CLIENT_MACHINE

WM_CLIENT_MACHINE

プログラミング Svenska → 更新: 2026-10-22

Xプログラムが動いているマシンの名前を示すICCCMのプロパティ。元は rsh がどこで再起動すべきかを知るためのものだったが、今ではウィンドウマネージャが誤ったプロセスを殺さないための安全装置として働く。

名前は意味より古い。WM_CLIENT_MACHINE はXプロトコルの定義済みアトムの36番で、1987年のX11R1で固定された。ICCCM 1.0が何を入れるかを決める2年前のことだ。答えは、TEXT系の型の文字列で、クライアントのマシンを「サーバを動かすマシンから見た」名前で表したものだった。2台のコンピュータが互いを同じ名前で呼ぶとは限らないと認めた言い回しである。Xlib の XSetWMProperties は常に gethostname の短いホスト名でこれを設定するので、xterm や Xt、Motif のプログラムは知らずに持っており、GTKとQtは自分で設定する。目的はセッションだった。WM_COMMAND と合わせて、プログラムが画面とは別のマシンにあるネットワーク上でセッションを再現するとき、コマンドを rsh でどこで実行すべきかを示した。

その用途はXSMPとともに死んだが、EWMHがこのプロパティに第二の仕事を与えた。_NET_WM_PID を設定するプログラムは WM_CLIENT_MACHINE も設定せねばならず、名前が自分のものと一致する場合に限りウィンドウマネージャは SIGKILL を送れる。SSHのX11フォワーディング経由で届く他マシンのPIDは、そうでなければ無関係なローカルプロセスを指してしまう。そのためEWMHは完全修飾ドメイン名を要求するが、実際に与える人はほぼいない。多くのデスクトップで xprop は短い名前を示し、双方が同じ gethostname を呼ぶからこそ比較が成り立つ。xlsclients は最初の列にこれを印字する。かつてXの画面が、複数のマシンのプログラムで満ちていた名残である。

← 用語集に戻る