如果想在执行系统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
网友留言: