![使用systemd计时器关闭和启动服务](https://linux22.com/image/137470/%E4%BD%BF%E7%94%A8systemd%E8%AE%A1%E6%97%B6%E5%99%A8%E5%85%B3%E9%97%AD%E5%92%8C%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1.png)
我创建了一个 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
推荐的目标。