DISPLAY 环境变量的用法

現在 foo.com というローカルホストにいて、そこで X サーバが起動されているとする。ここで xeyes を実行すると、当然 xeyes のウィンドウが画面に表示される。この状況で実行されているプログラムは、X クライアント (xeyes) と X サーバである。xeyes が「マウスの位置を教えろ」「円を描け」と X サーバに要求し、X サーバはそのリクエストに従ってマウスの情報を渡したり、画面に円を描いたりしている。

では他のホストで X クライアントを実行してみよう。まず他のホストにログインする必要があるが、その前に
% xhost +
としておく (理由は後述)。そして telnet で bar.com にログインする。
% telnet bar.com
login: ログインネーム入力
password: パスワード入力
ここで xeyes を実行すると
% xeyes
cannot open display.
とエラーになってしまう。これは bar.com 側でウィンドウを開こうとして失敗したからである。foo.com にウィンドウを開くように指示しなければならない。
% setenv DISPLAY foo.com:0.0
これで xeyes が実際にリクエストを出す X サーバは bar.com ではなく foo.com になる。
% xeyes
とすると xeyes が表示されるはずである。この状況では、xeyes という X クライアントは bar.com で動いているが、xeyes は foo.com の X サーバに対して「円を描け」などと要求している。

上記のように環境変数 DISPLAY で設定してもよいが、
% xeyes -display foo.com:0.0

などとオプションで指定することもできる。-display オプションはほとんど全ての X アプリケーションで指定することができる。普通は X クライアントと X サーバは同一のホスト(ローカルホスト)で動いているので、DISPLAY は :0.0 (=localhost:0.0) となっている。

xhostについて、

デフォルトでは、ローカルホスト以外からは X サーバにアクセスすることはできないが、
% xhost +foo.bar.com
とすると、foo.bar.com からのアクセスを許可する。
% xhost +
とすると全てのホストからアクセス可能になる。

なお、本当に xhost + とすると、全世界のホストから
% xwd -display your.host.com:0.0
などと、スクリーンショットを取ったり、画面上に任意のプログラムを表示したり、全てのキーストロークを盗むことが可能になる。なので、xhost の代わりに xauth を使うのが望ましい。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值