在 Linux 关机时执行任务

问题描述 投票:0回答:1

我想运行一个 .service 来“听到”关闭信号(最好是手动的,带有物理按钮,以及 sudo shutdown/reboot 等),当它听到它时,它会执行一项任务,在这种情况下,它运行一个 .service 。嘘。 我希望这个脚本始终在后台运行,因为有时我可以取消关闭,所以如果它在关闭后结束,它将无法在稍后再次执行该任务。

有人知道有什么方法可以做到这一点吗?我尝试过以多种不同的方式创建 .service,但它不起作用,或者它起作用一次然后就不起作用了。

这是我的 .sh,如果我像 ./check_pwr 一样运行它,它总是有效的:

#!/bin/bash
python3 /home/workspace/on_boot/on_key.py

timestamp=$(date +"%Y-%m-%d %T")
echo "$timestamp - System is shutting down" >> /home/workspace/on_boot/pwr.log

我的.service是这样的:

[Unit]
Description=My Shutdown Listener
DefaultDependencies=no
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/home/y3qucfm/workspace/on_boot/check_pwr.sh
RemainAfterExit=true

[Install]
WantedBy=shutdown.target
linux ubuntu service
1个回答
0
投票

您可以尝试将其添加到 .service 文件的 [Unit] 部分下吗?我尝试做你正在做的事情。我添加了这些,我可以看到它的工作原理。我只使用 shutdown.sh 脚本向日志文件添加了回显

Requires=shutdown.target
Conflicts=shutdown.target
© www.soinside.com 2019 - 2024. All rights reserved.