web-dev-qa-db-ja.com

emacsはディスプレイを開くことができません

つい最近、これが起こり始めました。走る: /usr/bin/emacsclient --alternate-editor="" --no-wait -cそして取得:

エラー:ディスプレイ:0.0を開くことができません

他のアプリケーションはこれを行いません。

xdpyinfoからの出力:

name of display:    :0.0
version number:    11.0
vendor string:    The X.Org Foundation
vendor release number:    10707000
X.Org version: 1.7.7
.....

編集:

古いemacsサーバー/デーモンがまだ実行されていることを発見しました。

$ps ux | grep [e]macs
richard   2642  0.0  0.8  38788 24984 ?        Ss   Jun22   0:25 emacs --daemon
richard   7512  0.0  0.6  33896 19720 ?        Ss   Jun23   0:05 emacs --daemon
richard  15458  0.0  0.6  32836 19076 ?        Ss   09:40   0:01 emacs --daemon

ログオフ時にこれらをシャットダウンする方法を誰かが知っていますか?

4
ctrl-alt-delor

何が起こっているのかと思います。ログイン方法とEmacsの起動方法について詳しく知り、修正方法を説明する必要があります。

Xプログラムは、Xディスプレイに接続するために2つの情報を持っている必要があります。ディスプレイの名前を知る必要があります。これは通常、DISPLAY環境変数から取得されます。また、X cookieと呼ばれる表示用のパスワードが必要であり、通常は_~/.Xauthority_というファイルに保存されるか、XAUTHORITY環境変数で示されます。 ( 詳細はこちら

Emacsclientが正しい表示情報(_:0.0_)をメインのEmacsプロセスに渡しているのではないかと思いますが、XCookieを渡していません。通常、Emacsclientは独自の環境(存在する場合はXAUTHORITYを含む)をEmacsサーバーに送信し、2つのプロセスは同じファイルシステムにアクセスしてCookieファイルを読み取ります。これはここで失敗しています。

その理由を知るために、以下にその回答が役立つと思われる質問を示します。

  • _$XAUTHORITY_の値は何ですか? (設定されていない場合、値は_~/.Xauthority_であるかのようになります。)
  • そのファイルはどこにあり、そのファイルに対するアクセス許可は何ですか?
  • Emacsプロセスと現在のクライアントは何らかの方法(マシン、ユーザー、chrootなど)で異なるコンテキストで起動されましたか?
  • Emacsプロセスの_$XAUTHORITY_の値は異なりますか? (_ps -C emacs wwe_またはgrep -az XAUTHORITY= /proc/$(pidof emacs)/environ
  • どのようにログインしますか(ディスプレイマネージャー(これ)、テキストモード、SSH経由など)? Emacsプロセスはどのように開始されますか(どこから、どの時点で)?デーモンとして起動しますか?

Debianのバグ #586685 この問題にはいくつかの回避策があります。これは、gdm3(Xauthorityファイルが保存されている場所)で導入された変更のようです。

アップストリームのバグも報告されています:Gnomeバグ #651431

0
asjo