How to gracefully shutdown emacs daemon?

projectshave picture projectshave · Jul 22, 2009 · Viewed 30k times · Source

On login to Ubuntu, I start an Emacs (version 23) daemon using Ubuntu's Startup programs. I then start Emacs clients whenever I need to edit something. When I logoff from Ubuntu, it says Emacs is still running, of course. I need to attach a script somewhere to tell Gnome to shutdown emacs when I logoff/shutdown.

1) What should the script look like? "kill-emacs" doesn't seem to work.

2) Where should I put this script? There's nothing in the startup programs (System->Sessions menu) panel that looks useful. I'd prefer something that works in the user's account, rather than hacking the PostSession script or something else with root access.

Answer

haxney picture haxney · Jul 22, 2009

ShreevatsaR is right, the answer is kill-emacs or save-buffers-kill-emacs, both of which are interactive, and so can be run from within Emacs with M-x save-buffers-kill-emacs. This is probably the best way to do it, since you will get to save modified files.

Another alternative is to make a shell file like this:

#!/bin/bash
emacsclient -e "(kill-emacs)"

Which you can run from wherever you like (menu icon, panel, etc).