ArchLinux 中的优雅关机

lvi*_*ani 22 shutdown arch-linux gdm3

我正在尝试使用 GNOME Shell 在 ArchLinux 中正常关闭/重启。现在,当我要求关闭时,它会立即关闭,而不会给打开的程序时间来正常关闭/保存打开的文件。结果,每当我重新启动 Chrome(例如)它告诉我会话没有正确关闭等。通过在网上阅读我了解到 systemd 在关闭进程时,它首先发送一个,SIGTERM然后是SIGKILL如果进程没有关闭在给定的超时时间内。但是我注意到在我的系统SIGKILL上立即发送SIGTERM,我想这是非正常程序终止的原因。

我发现了一些文档(如果我正确阅读)指出SIGKILL可以通过TimeoutStopSec=选项设置发送前的超时。SIGKILL也可以通过SendSIGKILL=选项禁用发送。但我找不到在哪里配置这些选项......是否有一个 systemd 关闭/重启配置文件,我可以在其中设置这些选项?

编辑:

我做了一些测试,发现了两个有趣的事情:

  1. 如果我像这样手动关闭 chrome killall -SIGTERM chrome,下次我再次启动它时,它不会抱怨没有正确关闭。如果我像这样关闭它killall -SIGKILL chrome,它会抱怨。这告诉我 chrome 正在正确处理 SIGTERM。
  2. 查看我的关机程序的输出,systemdSending SIGTERM...立即打印,然后是Sending SIGKILL...

根据下面的评论,systemd 仅处理其进程。所以就我而言,GDM。这告诉我问题可能是:

  1. 要么 GDM 没有正确关闭它的子进程(例如 Chrome)(即通过向它们发送 SIGTERM)
  2. 或者 systemd 正在向 GDM 发送一个 SIGKILL 消息,没有给它时间正确关闭它的孩子。

有没有办法检查/配置 GDM 实际上如何关闭其子项?

Cam*_*emo 2

要正常关闭桌面,您可能需要提高TimeoutStopSec=GDM 或您正在使用的任何其他显示管理器的 。