只有当 emacs 服务器正在运行时(特别是当 emacs 以 --daemon
标志启动时),我才想在我的 init 文件中执行一些代码。 server-start
时似乎没有运行任何钩子(Hook)。被调用并且没有变量我可以查看服务器是否正在运行。
一个技巧是使用 (featurep 'server)
,因为除非启动服务器,否则不会加载服务器功能,这似乎确实适合我的目的,但我想知道这样做的正确方法是什么。谢谢。
最佳答案
如果服务器进程正在运行,则关联的进程对象为 server-process
.测试是否 server-process
is non-nil 告诉您服务器是否应该正在运行;您可以测试它的状态以检查它是否处于可接受的状态。
(and (boundp 'server-process)
(memq (process-status server-process) '(connect listen open run)))
您可以使用
(daemonp)
测试是否将 Emacs 作为守护进程调用。 .
关于emacs - 如何知道emacs服务器是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704962/