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

phe*_*ver 15 emacs

我只想在emacs服务器运行时在我的init文件中执行一些代码(特别是如果emacs是以--daemon标志启动的话).似乎没有任何钩子在server-start被调用时运行,并且没有变量我可以查看服务器是否正在运行.

黑客是使用(featurep 'server),因为服务器功能没有加载,除非服务器启动,这似乎适合我的目的,但我想知道正确的方法是什么.谢谢.

Gil*_*il' 16

如果服务器进程正在运行,则关联的进程对象是server-process.测试if是否server-process为nil告诉你服务器是否应该运行; 您可以测试其状态以检查它是否处于可接受状态.

(and (boundp 'server-process)
     (memq (process-status server-process) '(connect listen open run)))
Run Code Online (Sandbox Code Playgroud)

您可以测试是否将Emacs作为守护程序调用(daemonp).

  • `daemonp`正是我想要的,谢谢! (2认同)