我正在尝试使用 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