centos7自定义关机前执行脚本

创建脚本

1
2
3
4
5
6
7
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服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

启动服务

1
2
3
4
systemctl daemon-reload
systemctl enable stopSrv
systemctl restart stopSrv
systemctl status stopSrv

验证

1
2
3
4
5
6
7
# 有效果
reboot
shutdown -r now
shutdown -h now

# 无效果
poweroff

此文章来源于网络

课程中心

Qianj.51CTO