emacs - 如何知道emacs服务器是否正在运行

标签 emacs

只有当 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/

相关文章:

Emacs 文本卡在 minibuffer 中

emacs - 什么时候应该使用 Emacs #'function 语法?

emacs regexp匹配首字母大写的字符串

java - Emacs 枚举缩进

sorting - 如何对emacs中的文件进行排序?

emacs - 如何格式化emacs中目录下的所有文件?

bash - 在运行时编辑 Bash 脚本的 Emacs 工作流程

emacs - 设置 SHIFT+箭头键选择 emacs prelude 中的文本

macos - 如何在 Mac OS X 上配置 gnu emacs

git - magit-grep,如何包含或排除文件扩展名?