CentOS7关机或重启前执行特定脚本

Posted 不吃瓜程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7关机或重启前执行特定脚本相关的知识,希望对你有一定的参考价值。


  • 关机服务脚本

修改/usr/lib/systemd/system/stopSrv.service 服务脚本中 ExecStart 配置项(如果文件不存在则创建新文件并执行后续操作),将 ExecStart 的值改为要执行的脚本目录。如本文中需要在关机或重启前执行/usr/bin/shutdownhook.sh脚本的相关配置如下:

[Unit]Description=close services before reboot and shutdownDefaultDependencies=noBefore=shutdown.target reboot.target halt.target# This works because it is installed in the target and will be# executed before the target state is entered# Also consider kexec.target
[Service]Type=oneshotExecStart=/usr/bin/shutdownhook.sh
[Install]WantedBy=halt.target reboot.target shutdown.target
 
   
   
 
  • 编写操作脚本

新建/usr/bin/shutdownhook.sh脚本,在其中增加需要执行的操作,如本例在关机或重启前打印本次系统开机时间和当前时间到文件做记录,相关脚本如下:

#!/bin/bashnow_time=`date "+%Y-%m-%d %H:%M:%S"`start_time=`date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"`echo "System will shutdown.Star time=$start_time,now time=$now_time" >> /docker_data/logs/system.logsync
 
   
   
 
  • 启用配置

给两个脚本赋予可执行文件,然后启用服务即可,相关命令如下:

chmod +x /usr/bin/shutdownhook.sh`chmod +x /usr/lib/systemd/system/stopSrv.servicesystemctl enable stopSrv



以上是关于CentOS7关机或重启前执行特定脚本的主要内容,如果未能解决你的问题,请参考以下文章

centos 关机命令

Centos7 关机与重启

centos7正确关机重启

centos7正确关机重启

centos7正确关机重启

关机/重启/用户切换/注销