X Window System資料一覧

Xクライアントを起動すると「Can't open display」または「Unable to open display」と表示され起動に失敗する

2007/7/29更新

以下のような原因が考えられる。

原因1

ディスプレイ名が間違っている。

対策

ディスプレイ名を確認する。DISPLAY環境変数に設定している場合にはそれも確認する。

原因2

何らかの理由でUNIX domain socketが消えた。

対策

ディスプレイ名にunix:0.0(または:0.0)を指定して起動すると「Can't open display」と表示されて起動できないが、そのマシンのホスト名(例えばmyhost:0.0)を指定して起動すると動くことがある。

これは、Xサーバとクライアント間の通信にsocket()システムコールを使っている場合に起こる可能性がある。

Xでのunix:0.0の実体は/tmp/.X11-unix/X0というファイルになっている。

このファイルがなんらかの理由で消されるとこのような現象が起こる。

例えばcronなどで定期的に/tmpにあるファイルを消していないだろうか。

unix:0.0を使えるようにするにはXサーバを再起動するしかない。

再起動したくない場合にはとりあえずホスト名を指定してクライアントを起動する。