linux操作系统关机时间长的解决方案

  最近在研究linux操作系统时发现,常常会因为一个未知的进程,导致关机时间变长。
  系统终端会输出:a start job is running for init-scope(1min,30s)。
  出现这种的原因可能是有一些系统服务未正常启动或正常关闭,可以查看系统日志去排错,当然也可以修改systemd默认的系统配置参数去减少等待时间。

一、系统服务管理Systemd

  当作为系统实例运行时,systemd 将会按照 system.conf 配置文件以及 system.conf.d 配置目录中的指令工作;当作为用户实例运行时,systemd 将会按照 user.conf 配置文件以及 user.conf.d 配置目录中的指令工作。这些配置文件包含了控制 systemd 行为的设置。

路径:
/etc/systemd/system.conf,/etc/systemd/system.conf.d/*.conf  
/etc/systemd/user.conf,/etc/systemd/user.conf.d/*.conf

二、解决方案

1、修改system.conf文件

vim /etc/systemd/system.conf
修改 DefaultTimeoutStopSec 的值,默认90秒,可以改为5秒,注意去掉前边的#号

DefaultTimeoutStartSec DefaultTimeoutStopSec
设置启动/停止一个单元所允许的最大时长,以及在重启一个单元时,停止与启动之间的间隔时长。若仅设置一个整数而没有单位,那么单位是秒。也可以在整数后面加上时间单位后缀: “ms”(毫秒), “s”(秒), “min”(分钟), “h”(小时), “d”(天), “w”(周) 。DefaultTimeoutStartSec= 与 DefaultTimeoutStopSec= 的默认值都是 90s。

2、使system.conf文件生效

  • 重启服务器
  • 执行 systemctl daemon-reexec

注意: 使用daemon-reload无效的原因:
  单纯使用 systemctl daemon-reload 是不会对 /etc/systemd/system.conf 刷新的。也就是说,daemon-reexec 会重新执行systemd管理器,重新读取系统配置文件,而daemon-reload只会去读service部分的配置,不包含全局配置/systemd/system.conf,相当于重量级的daemon-reload。

猜你喜欢

转载自blog.csdn.net/fish332/article/details/128648468