这使得系统启动时它不会一同启动;然后,相反地,启用 minetest.timer :
sudo systemctl enable minetest.timer
现在你就可以重启服务器了,当运行 sudo journalctl -u minetest.* 后,你就会看到 minetest.timer 单元执行后大约一分钟,minetest.service 单元开始运行。
图 1:minetest.timer 运行大约 1 分钟后 minetest.service 开始运行
时间的问题
minetest.timer 在 systemd 的日志里显示的启动时间为 09:08:33 而 minetest.service 启动时间是 09:09:18,它们之间少于 1 分钟,关于这件事有几点需要说明一下:首先,请记住我们说过 OnBootSec= 指令是从引导完成后开始计算服务启动的时间。当 minetest.timer 的时间到来时,引导已经在几秒之前完成了。
另一件事情是 systemd 给自己设置了一个误差幅度(默认是 1 分钟)来运行东西。这有助于在多个资源密集型进程同时运行时分配负载:通过分配 1 分钟的时间,systemd 可以等待某些进程关闭。这也意味着 minetest.service 会在引导完成后的 1~2 分钟之间启动。但精确的时间谁也不知道。
顺便一提,你可以用 AccuracySec= 指令修改误差幅度。
你也可以检查系统上所有的定时器何时运行或是上次运行的时间:
systemctl list-timers --all
图 2:检查定时器何时运行或上次运行的时间
最后一件值得思考的事就是你应该用怎样的格式去表示一段时间。Systemd 在这方面非常灵活:2 h ,2 hours 或 2hr 都可以用来表示 2 个小时。对于“秒”,你可以用 seconds ,second ,sec 和 s 。“分”也是同样的方式:minutes ,minute ,min 和 m 。你可以检查 man systemd.time 来查看 systemd 能够理解的所有时间单元。
下一次
下次你会看到如何使用日历中的日期和时间来定期运行服务,以及如何通过组合定时器与设备单元在插入某些硬件时运行服务。 【编辑推荐】 - Linux 操作系统运维必备的实用工具有哪些?
- Linux系统真的很吃内存?
- 误删重要文件怎么办?学会Linux救援模式再也不担心
- 如何在Linux中一次重命名多个文件
- 重启和关闭Linux系统的6个终端命令
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0
(编辑:ASP站长网)
|