Почему важно корректно завершить работу демона emacs? - PullRequest
1 голос
/ 23 апреля 2020

здесь и здесь , они обсуждают, как грациозно завершают работу emacs deamon. Почему это важно? Один из ответов предложил pkill -TERM emacs, который выполняет свою работу, но явно не изящно. В чем проблема с изящным завершением работы демона emacs? что может произойти, если я не сделаю это?

Спасибо

1 Ответ

1 голос
/ 23 апреля 2020

Один из предложенных ответов 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. Убийство процессов, не давая им возможности убраться, всегда должно быть последним средством. Нетрудно представить проблемы, которые могут возникнуть, например, если процесс был остановлен во время написания файла.

...