Недавно я установил services.emacs.enable = true;
на моем configuration.nix
. Я заметил, что во время выключения появляется раздражающее время ожидания. Вот что я вижу:
[ OK ] Stopped X11 Server.
[ OK ] Stopped Session 2 of user <myUsername>.
Stopping Login Service.
Stopping User Manager for UID 1001.
[ OK ] Stopped Login Service.
[ *** ] A stop job is running for User Manager for UID 1001 (1min 32s / 2min 3s)
Насколько я понимаю, для управления этими сервисами создан второй экземпляр systemd. Глядя на top
, я вижу, что это порождает процессы pulseaudio
и .emacs-26.3-wra
. Выражения nix для службы Emacs действительно имеют атрибут execStop
, но я подозреваю, что некоторые помехи recentf
или некоторые другие функции в самом Emacs вызывают и предотвращают мгновенную смерть.
До включения службы Emacs я никогда была эта проблема, и, просто отключив ее, проблема исчезает. Я полагаю, что одним из способов грубого решения проблемы было бы поставить killall -9 .emacs-26.3-wra
где-то в опциях, но я не уверен, где (уже пробовал на services.xserver.displayManager.sddm.stopScript
, но безрезультатно.
Итак, мой вопрос, если не считать разветвления nixpkgs
для изменения функции остановки или выполнения того же в Emacs, есть ли способ обеспечить немедленное завершение процесса Emacs? Я уже посмотрел и установил confirm-kill-emacs
в значение ноль. Это мой текущий configuration.nix
: configuration.nix . Я ни в коем случае не опытный пользователь. Так что ваша помощь будет принята с благодарностью: -)