Emacs server 的异常的一次排查

From 清冽之泉
Jump to navigation Jump to search

在 Emacs 里,(emacs-pid),得到 Emacs 的 pid 号。

在 Terminal 里,emacsclient -e '(emacs-pid)',得到 Terminal 里 Emacs 用的 pid 号。

二者若不一致,就无法通信。

再用 systemctl --user status emacs 能查到,Emacs 本身有个 daemon,应该会因为打开 Emacs Client 而自动启动。所谓的异常,就是两边的 client pid 对不上。

解决方法很简单,重启下电脑,没事别用 Emacs Client,就能在 Emacs GUI 的配置里,自定义 server-start 了:

(require 'server)

(unless (server-running-p)
  (server-start))