【发布时间】:2020-04-23 03:57:46
【问题描述】:
here 和 here,他们讨论了如何优雅地关闭 emacs 守护进程。它为什么如此重要?答案之一建议使用 pkill -TERM emacs,它可以完成这项工作,但显然不够优雅。没有优雅地关闭 emacs 守护进程有什么问题?如果我不这样做会发生什么?
谢谢
【问题讨论】:
-
我认为保持更新的最近打开的文件列表(或更新的 emacs 历史文件)可能很重要
here 和 here,他们讨论了如何优雅地关闭 emacs 守护进程。它为什么如此重要?答案之一建议使用 pkill -TERM emacs,它可以完成这项工作,但显然不够优雅。没有优雅地关闭 emacs 守护进程有什么问题?如果我不这样做会发生什么?
谢谢
【问题讨论】:
其中一个答案建议
pkill -TERM emacs,它可以完成这项工作,但显然不够优雅。
尽管我建议使用进程 ID 而不是 pkill,但 应该 是优雅的关闭。手册说:
‘kill-emacs’函数通常通过高层调用 命令'C-x C-c'('save-buffers-kill-terminal')。 *笔记 (emacs)退出::.如果 Emacs 收到一个 “SIGTERM”或“SIGHUP”操作系统信号(例如,当 控制终端已断开连接),或者如果它收到“SIGINT” 在批处理模式下运行时发出信号 (*note Batch Mode::)。
此行为是在 Emacs 24.1 中引入的(在您链接到的问答之后)。
** 退出更改
*** 如果 Emacs 收到 SIGTERM 或 SIGHUP,它现在会调用 `kill-emacs', 或者如果它在批处理模式下接收到 SIGINT 信号。
*** `kill-emacs-hook' 现在也以批处理模式运行。 添加到“kill-emacs-hook”的第三方代码应该检查它们是否 在批处理模式下做正确的事。
至于你为什么不想要非正常关机,这并不是一个真正的 Emacs 问题。杀死进程而不让它们有任何清理的机会应该始终是最后的手段。不难想象,如果一个进程在写文件的过程中被杀死会导致什么问题。
【讨论】: