需要在 RHEL 7 重新启动之前运行数据库关闭脚本

需要在 RHEL 7 重新启动之前运行数据库关闭脚本

我正在尝试使用 systemd 执行脚本,下面是我正在使用的服务定义,但是在重新启动之前该脚本并未运行:

[Unit]
Description=Before Shutting Down
Before=reboot.target
RequiresMountsFor=/home

[Service]
Type=oneshot
User=oracle
ExecStart=/home/oracle/scripts/stop_db.sh
RemainAfterExit=yes

[Install]
WantedBy=reboot.target

请问有运气吗?尝试了多种建议的解决方案,但没有任何运气。

服务状态:

● dbstop.service - Before Shutting Down
   Loaded: loaded (/etc/systemd/system/dbstop.service; enabled; vendor preset: disabled)
   Active: inactive (dead)

答案1

为什么不将数据库作为服务来启动和停止并让 systemd 完成剩下的工作呢?

[Unit]
Description=myDB
After=network-online.target nss-lookup.target
Wants=network-online.target nss-lookup.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/oracle/scripts/start_db.sh
ExecStop=/home/oracle/scripts/stop_db.sh

[Install]
WantedBy=multi-user.targetYM

相关内容