关机时间太长的调查和解决的方法 | Linux 中国

关机时间太长的调查和解决的方法 | Linux 中国
文章图片
你的Linux系统关机时间太长么?以下是你可以采取的步骤 , 来找出导致延迟关机的原因并解决这个问题 。
?来源:linux.cn?作者:AbhishekPrakash?译者:geekpi?
(本文字数:2367 , 阅读时长大约:3分钟)
你的Linux系统关机时间太长么?以下是你可以采取的步骤 , 来找出导致延迟关机的原因并解决这个问题 。
我希望你对sigterm和sigkill的概念有一点熟悉 。
当你关闭Linux系统时 , 它会发送终止信号(sigterm) , 并礼貌地要求正在运行的进程停止 。 有些进程不符合该行为 , 它们会忽略终止信号并继续运行 。
这可能会导致关机过程的延迟 , 因为你的系统会在一个预定义的时间段内等待运行的进程停止 。 在这个时间段之后 , 它会发送kill信号来强制停止所有剩余的运行进程并关闭系统 。
事实上 , 在某些情况下 , 你会在黑屏上看到一个类似“astopjobisrunning”的信息 。
如果你的系统关闭时间太长 , 你可以做以下工作:
检查哪个进程/服务耗时过长 , 以及你是否能删除或重新配置它 , 使其正常运行 。
更改系统强制停止运行进程前的默认等待时间 。 (快速而不优雅的方式)
我的操作系统是使用systemd的Ubuntu 。 这里的命令和步骤适用于任何使用systemd的Linux发行版(大多数发行版都是这样) 。
检查哪些进程会导致Linux的长时间关机
如果你想找出问题所在 , 你应该检查上次关机时发生了什么 。 使用这个命令来获得“我知道你上个会话做了什么”(IKnowWhatYouDidLastSummer的双关语)的力量 。
journalctl-rb-1
journalctl命令能让你读取系统日志 。 使用选项-b-1可以过滤最后一次启动会话的日志 。 使用选项-r时 , 日志将按时间倒序显示 。
换句话说 , journalctl-rb-1命令将显示最后一次关闭Linux系统之前的系统日志 。 这里就是你需要分析Linux系统长时间关机问题的地方 。
没有journal日志?下面是你应该做的 。
如果没有journal日志 , 请确认你的发行版是否使用systemd 。
即使在一些使用systemd的Linux发行版上 , journal日志也没有被默认激活 。
请确认/var/log/journal是否存在 。 如果不存在 , 请创建它:
sudomkdir/var/log/journal
你还应该检查/etc/systemd/journald.conf文件的内容 , 并确保Storage的值被设置为自动(auto)或持久(persistent) 。
你是否在日志中发现可疑的东西?是否有一个进程/服务拒绝停止?如果是 , 调查一下是否可以在没有副作用的情况下删除它 , 或者是否可以重新配置它 。 请不要在这里盲目地去删除东西 。 你应该对这个进程有所了解 。
通过减少默认停止超时来加快Linux中的关机速度(快速修复)
【关机时间太长的调查和解决的方法 | Linux 中国】关机的默认等待时间通常设置为90秒 。 在这个时间之后 , 你的系统会尝试强制停止服务 。
如果你想让你的Linux系统快速关闭 , 你可以改变这个等待时间 。
你可以在位于/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.conf
关机时间太长的调查和解决的方法 | Linux 中国
文章图片
ChangeShutdownTimeSettingsUbuntu
不要忘记删除DefaultTimeoutStopSec前的#号 。 保存文件并重启系统 。
这将帮助你减少Linux系统的关机延迟 。
看门狗问题!
Linux有一个名为看门狗的模块 , 用于监控某些服务是否在运行 。 它可以被配置为在系统因软件错误而挂起时自动重启系统 。
在桌面系统上使用看门狗是不常见的 , 因为你可以手动关闭或重启系统 。 它经常被用于远程服务器上 。
首先检查看门狗是否在运行:
ps-af|grepwatch*
如果你的系统正在运行看门狗 , 你可以在systemd配置文件/etc/systemd/system.conf中将ShutdownWatchdogSec的值从10分钟改为更低的值 。
你能解决关机时间过长的问题吗?
希望本教程能帮助你解决系统长时间关机的问题 。 如果你成功解决了这个问题 , 请在评论中告诉我 。
via:https://itsfoss.com/long-shutdown-linux/
作者:AbhishekPrakash选题:lujun9972译者:geekpi校对:wxy
本文由LCTT原创编译 , Linux中国荣誉推出


    推荐阅读