使用systemd计时器关闭和启动服务

使用systemd计时器关闭和启动服务

我创建了一个 ServiceName.service 文件。

[Unit]
Description=ServiceName Service
After=network.target

[Service]
ExecStart=/usr/local/bin/<scriptName>.sh

我创建了一个 ServiceName.timer 文件。

[Unit]
Description=ServiceName timer to start weekly

[Timer]
#reboot
OnBootSec=1min
#weekly
OnUnitActiveSec=1w
Unit=ServiceName.service

[Install]
WantedBy=multi-user.target

.sh 文件启动一个网页,并使用需要访问一周的网页的新结果进行搜索,然后执行新的搜索。

脚本在启动时启动,因此该部分可以工作。但似乎脚本必须先关闭服务才能使计时器功能起作用。我不知道该怎么做。

答案1

欢迎来到 Unix 和 LinuxStackExchange。

首先,您可能想 After=network-online.target确保网络完全正常。

其次,您必须systemctl enable ServiceName.timer使计时器在启动时启动。是你做的吗?用于systemctl list-timers检查哪些正在运行。

第三,更新您的计时器文件以使用WantedBy=timers.target推荐的目标。

相关内容