El server-running-ppredicado evaluará tsi el servidor Emacs se está ejecutando, independientemente de qué sesión de Emacs "posea" actualmente el proceso del servidor.
Por lo tanto, cuando hay dos o más sesiones independientes de Emacs ejecutándose simultáneamente, server-running-prealmente no se prueba si la sesión actual de Emacs está ejecutando el servidor.
Estoy buscando una prueba más específica, una que evalúe t si y solo si la sesión actual (es decir, la sesión que realiza la prueba) está ejecutando el servidor Emacs.

server-starty despuésserver-force-delete),server-modesiempre fue asínil.(server-mode 1)lugar de llamar(server-start). El primero invoca al segundo, yserver-force-deletetambién verifica y deshabilita este modo, por lo que parece quesever-modees la interfaz deseada, y no deberíamos llamarserver-startdirectamente.server-modeaún no tiene en cuenta el mismo servidor que se inicia y elimina a través de múltiples instancias de Emacs, ya que eliminar el servidor de una instancia no tiene ningún efecto sobre el valor deserver-modeotra.Respuestas:
Puede verificar:
Eso debería funcionar siempre que haya evitado iniciar un servidor en otras instancias.
Suponiendo un servidor basado en sockets, si tuviera que iniciar una segunda instancia de Emacs y eliminar por la fuerza y luego reiniciar el proceso del servidor desde esa segunda instancia, el código anterior aún devolverá un valor nulo en la instancia original (como el mismo socket el directorio estará en uso), dejándolo en la situación original.
(Obviamente, esto no es ideal, por lo que puede haber una mejor solución).
server-running-ple indica si seserver-nameestá ejecutando un servidor con nombre en particular (por defecto ); así que si suserver-namees el mismo en todas sus instancias, entonces puede evitar iniciar un servidor que ya se está ejecutando de la siguiente manera:fuente