here和here,他们讨论如何优雅地关闭emacs守护进程。它为什么如此重要?答案之一是建议使用pkill -TERM emacs,它可以完成任务,但显然不能正常运行。不正常关闭emacs守护程序有什么问题?如果我不这样做会怎样?
谢谢
答案 0 :(得分:1)
答案之一是
pkill -TERM emacs
,它可以完成任务,但显然不能正常工作。
尽管我会推荐使用进程ID,而不是pkill
,但应该是一个正常的关闭过程。手册说:
通常通过上级调用“ kill-emacs”功能 命令“ C-x C-c”(“ save-buffers-kill-terminal”)。 *注意 (emacs)退出::。如果Emacs收到 “ SIGTERM”或“ SIGHUP”操作系统信号(例如,当 控制终端已断开连接),或者接收到“ SIGINT” 在批处理模式下运行时发出信号(*注意批处理模式::)。
此行为在Emacs 24.1中进行了介绍(该更新在您链接到的问答之后)。
**退出更改
***如果Emacs收到SIGTERM或SIGHUP,则现在调用`kill-emacs', 或者它以批处理方式接收到SIGINT信号。
***`kill-emacs-hook'现在也以批处理模式运行。 添加到`kill-emacs-hook'的第三方代码应检查它们是否 在批处理模式下做正确的事。
关于为什么您不希望非正常关机,这实际上不是Emacs的问题。在没有任何机会清理的情况下终止进程始终应该是最后的选择。不难想象,例如,如果某个过程在写入文件的过程中被杀死,可能会导致哪些问题。