Emacs守护程序会降低关机速度

时间:2020-04-30 00:44:35

标签: emacs nixos

最近,我在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进程。 Emacs服务的nix表达式的确具有execStop属性,但我怀疑Emacs本身存在某些recentf干扰或其他功能,从而提示并防止即时死亡。

在启用Emacs服务之前,我从未遇到过此问题,而只是通过停用它,该问题就消失了。我想一种强行解决问题的方法是将killall -9 .emacs-26.3-wra放在选项中的某个位置,但是我不确定在哪里(已经在services.xserver.displayManager.sddm.stopScript尝试过,但无济于事。

所以我的问题是,缺少派生nixpkgs来更改停止功能,或者没有在Emacs上执行相同的操作,是否有办法确保Emacs进程立即终止?我已经查看过,并将confirm-kill-emacs设置为nil。这是我当前的configuration.nixconfiguration.nix。我绝对不是超级用户。因此,您的帮助将不胜感激:-)

1 个答案:

答案 0 :(得分:1)

因此,对于任何偶然发现此问题的人,我发现this issue描述了相同的情况。事实证明,这确实是Spacemacs的问题,特别是kill-emacs-hook和一些清理代码。在尝试了许多不同的方法之后,唯一对我有用的方法是线程中的方法,将persp-mode添加到dotspacemacs-excluded-packages