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?