仅在关机时而不是重启时在 systemd 服务上运行脚本

仅在关机时而不是重启时在 systemd 服务上运行脚本
[Unit]  
Description=test  
Before=shutdown.target

[Service]  
ExecStart=/bin/true  
ExecStop=/usr/local/bin/test.sh  
RemainAfterExit=yes

[Install]  
WantedBy=multi-user.target

我尝试了很多例子,但都没用。上面的示例在重启和关机时都有效。我只想在关机时工作。

我没有服务器。这是我的个人电脑。我有 Gnu/linux 操作系统。是否可以仅在关机时运行脚本而不重新启动?

答案1

您可以在脚本中测试是否重新启动、停止或关闭系统,并决定相应的操作。

例如:

#!/bin/bash
if ! systemctl list-jobs | grep -q -e "reboot.target.*start"; then
   printf "Not rebooting\n"
fi

man systemd.special可以看到所有目标。您可能需要特别注意:

  • 关机目标
  • 重启目标
  • 停止目标
  • 关机目标

相关内容