问题
I set up desktop.el so that emacs automatically reopens all files on startup that were left open last time I killed emacs.
Now when I start emacs as a daemon and one of the reopened files has auto-save-data, the daemon displays the usual auto-save-data-message ("...file has auto save data...")
and waits for confirmation - but does not continue the initialization. Without confirmation the daemon will stay in this state and new connections (eg via emacsclient -c
) are accepted but not processed.
Is there a way to disable confirmations during the daemons startup?
回答1:
edit: Updated to match Zarza's working version:
(defadvice desktop-restore-file-buffer
(around my-desktop-restore-file-buffer-advice)
"Be non-interactive while starting a daemon."
(if (and (daemonp)
(not server-process))
(let ((noninteractive t))
ad-do-it)
ad-do-it))
(ad-activate 'desktop-restore-file-buffer)
(command-line)
starts the server process, but only "after loading the user's init file and after processing all command line arguments".
来源:https://stackoverflow.com/questions/4933134/emacs-daemon-startup-freezes-if-file-has-auto-save-data