つい最近、これが起こり始めました。走る: /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
ログオフ時にこれらをシャットダウンする方法を誰かが知っていますか?
何が起こっているのかと思います。ログイン方法とEmacsの起動方法について詳しく知り、修正方法を説明する必要があります。
Xプログラムは、Xディスプレイに接続するために2つの情報を持っている必要があります。ディスプレイの名前を知る必要があります。これは通常、DISPLAY
環境変数から取得されます。また、X cookieと呼ばれる表示用のパスワードが必要であり、通常は_~/.Xauthority
_というファイルに保存されるか、XAUTHORITY
環境変数で示されます。 ( 詳細はこちら )
Emacsclientが正しい表示情報(_:0.0
_)をメインのEmacsプロセスに渡しているのではないかと思いますが、XCookieを渡していません。通常、Emacsclientは独自の環境(存在する場合はXAUTHORITY
を含む)をEmacsサーバーに送信し、2つのプロセスは同じファイルシステムにアクセスしてCookieファイルを読み取ります。これはここで失敗しています。
その理由を知るために、以下にその回答が役立つと思われる質問を示します。
$XAUTHORITY
_の値は何ですか? (設定されていない場合、値は_~/.Xauthority
_であるかのようになります。)$XAUTHORITY
_の値は異なりますか? (_ps -C emacs wwe
_またはgrep -az XAUTHORITY= /proc/$(pidof emacs)/environ
)