Centos7关机和重启前使用systemctl的方式来自定义关机前执行脚本

Linux系统 0 2483 青岛笨笨 收藏

        如果想在执行系统reboot或者shutdown命令时,自定义清理一些服务或者资源等,可采用下面的方案实现。  


创建脚本

cat > /opt/test.sh << 'EOF'
#!/bin/bash

echo `date "+%G-%m-%d %H-%M-%S"` >> /opt/test.log
 
EOF
chmod +x /opt/test.sh


创建systemd服务

cat > /usr/lib/systemd/system/stopSrv.service << EOF

[Unit]
Description=close services before reboot and shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target

[Service]
Type=oneshot
ExecStart=/opt/test.sh
RemainAfterExit=yes

[Install]
WantedBy=halt.target reboot.target shutdown.target

EOF


 启动服务

systemctl daemon-reload
systemctl enable stopSrv
systemctl restart stopSrv
systemctl status stopSrv


经过这两步操作,关机和重启前,就会自动执行你自定义的脚本了

# 有效果
reboot
shutdown -r now
shutdown -h now

# 无效果
poweroff


相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码