事实上,在某些情况下,你会在黑屏上看到一个类似“astopjobisrunning”的信息。
我的操作系统是使用systemd的Ubuntu。这里的命令和步骤适用于任何使用systemd的Linux发行版(大多数发行版都是这样)。
如果你想找出问题所在,你应该检查上次关机时发生了什么。使用这个命令来获得“我知道你上个会话做了什么”(IKnowWhatYouDidLastSummer的双关语)的力量。
没有journal日志?下面是你应该做的。
如果没有journal日志,请确认你的发行版是否使用systemd。
即使在一些使用systemd的Linux发行版上,journal日志也没有被默认激活。
请确认/var/log/journal是否存在。如果不存在,请创建它:
sudomkdir/var/log/journal你还应该检查/etc/systemd/journald.conf文件的内容,并确保Storage的值被设置为自动(auto)或持久(persistent)。
你是否在日志中发现可疑的东西?是否有一个进程/服务拒绝停止?如果是,调查一下是否可以在没有副作用的情况下删除它,或者是否可以重新配置它。请不要在这里盲目地去删除东西。你应该对这个进程有所了解。
你可以在位于/etc/systemd/system.conf的配置文件中找到所有的systemd设置。这个文件中应该有很多以#开头的行。它们代表了文件中各条目的默认值。
在开始之前,最好先复制一份原始文件。
sudocp/etc/systemd/system.conf/etc/systemd/system.conf.orig在这里寻找DefaultTimeoutStopSec。它可能被设置为90秒。
#DefaultTimeoutStopSec=90s你得把这个值改成更方便的,比如5秒或10秒。
DefaultTimeoutStopSec=5s如果你不知道如何在终端中编辑配置文件,可以使用这个命令在系统默认的文本编辑器(如Gedit)中打开文件进行编辑:
sudoxdg-open/etc/systemd/system.confChangeShutdownTimeSettingsUbuntu
不要忘记删除DefaultTimeoutStopSec前的#号。保存文件并重启系统。
这将帮助你减少Linux系统的关机延迟。
看门狗问题!
Linux有一个名为看门狗的模块,用于监控某些服务是否在运行。它可以被配置为在系统因软件错误而挂起时自动重启系统。
在桌面系统上使用看门狗是不常见的,因为你可以手动关闭或重启系统。它经常被用于远程服务器上。
首先检查看门狗是否在运行:
ps-af|grepwatch*如果你的系统正在运行看门狗,你可以在systemd配置文件/etc/systemd/system.conf中将ShutdownWatchdogSec的值从10分钟改为更低的值。