最近,我在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.nix
:
configuration.nix。我绝对不是超级用户。因此,您的帮助将不胜感激:-)
答案 0 :(得分:1)
因此,对于任何偶然发现此问题的人,我发现this issue描述了相同的情况。事实证明,这确实是Spacemacs的问题,特别是kill-emacs-hook
和一些清理代码。在尝试了许多不同的方法之后,唯一对我有用的方法是线程中的方法,将persp-mode
添加到dotspacemacs-excluded-packages
。