Subject: bug#55560: 29.0.50; kill-emacs on daemon doesn't remove ~/.emacs.d/.emacs.desktop.lock

From: Peter Ludemann <[email-masked]>
Date: Sat, 21 May 2022 13:43:42 -0700

The various wikis are somewhat out of date. For example, this shows how to
create custom functions that do what save-buffers-kill-emacs does:
https://www.emacswiki.org/emacs/EmacsAsDaemon

Also, the documentation for kill-buffers and save-buffers-kill-emacs makes
no mention of the lock file.

Anyway, when I do "emacs --daemon -Q", "emacsclient -e
'save-buffers-kill-emacs'" worked fine; but when I run the daemon without
the "-Q", the "emacs -e 'save-buffers-kill-emacs'" command just sits there
with no output. The problem seems to be that I have this in my .emacs:

(setq kill-emacs-query-functions
     (cons (lambda () (yes-or-no-p "Really kill Emacs? "))
           kill-emacs-query-functions))

which sets kill-emacs-query-functions to:
((lambda nil
   (yes-or-no-p "Really kill Emacs? "))
 desktop-kill)

[I don't know where the "desktop-kill" comes from]

I often accidentally do ^X-^C when I run emacs in non-daemon mode, so I'd
like to keep this hook, or something similar. Is there a better way of
getting an "are you sure" message that works with both daemon and
non-daemon?