Один из предложенных ответов pkill -TERM emacs
, который делает работу, но, видимо, не изящно.
Несмотря на то, что я рекомендую , используя идентификатор процесса, а не pkill
, что должно быть изящным отключением. В руководстве сказано:
Функция kill-emacs обычно вызывается командой более высокого уровня 'C -x C -c' ('save-buffers-kill-terminal «). * Примечание (emacs) Выход ::. Он также вызывается автоматически, если Emacs получает сигнал операционной системы 'SIGTERM' или 'SIGHUP' (например, когда управляющий терминал отключен), или если он получает сигнал 'SIGINT' во время работы в пакетном режиме (* примечание Batch Mode: :).
Это поведение было введено в Emacs 24.1 (который датирует вопросы и ответы, на которые вы ссылались).
** Выход из изменений
*** Emacs теперь вызывает `kill-emacs ', если он получает SIGTERM или SIGHUP, или если он получает сигнал SIGINT в пакетном режиме.
***` kill-emacs-hook' теперь также запустить в пакетном режиме. Сторонний код, который добавляет `kill-emacs-hook ', должен проверять, правильно ли они работают в пакетном режиме.
Почему вы не хотите, чтобы изящный выключение, это не совсем вопрос Emacs. Убийство процессов, не давая им возможности убраться, всегда должно быть последним средством. Нетрудно представить проблемы, которые могут возникнуть, например, если процесс был остановлен во время написания файла.