如果您使用SystemD运行最近的Linux操作系统,您可以使用SystemD Timer单元以您希望的任何粒度级别(理论上低至纳秒)运行您的脚本,并且 - 如果您愿意 - 比Cron允许的更灵活的启动规则 . No sleep kludges required

设置比cron文件中的单行要多一些,但如果你需要比“每分钟”更好的东西,那么值得付出努力 .

该SystemD计时器模型基本上是这样的 - 计时器是在计时器过去时启动服务单元的单元 .

因此,对于要安排的每个脚本/命令,您必须具有服务单元,然后是其他计时器单元 . 单个计时器单元可以包含多个计划,因此您通常不需要多个计时器和一个服务 .

这是一个每10秒记录一次“Hello World”的简单示例:

/etc/systemd/system/helloworld.service :

[Unit]

Description=Say Hello

[Service]

ExecStart=/usr/bin/logger -i Hello World

/etc/systemd/system/helloworld.timer :

[Unit]

Description=Say Hello every 10 seconds

[Timer]

OnBootSec=10

OnUnitActiveSec=10

AccuracySec=1ms

[Install]

WantedBy=timers.target

设置这些单元后(如 /etc/systemd/system ,如上所述,对于系统范围的设置,或在 ~/.config/systemd/user 进行用户特定设置),您需要通过运行 systemctl enable helloworld.timer 来启用计时器(不是服务) . 如果要立即启动计时器(而不是在重新启动后等待它启动),也要运行 systemctl start helloworld.timer .

此处使用的 [Timer] 部分字段如下:

OnBootSec - 每次启动后多秒启动服务 .

OnUnitActiveSec - 在上次启动服务后的几秒钟内启动服务 . 这就是导致计时器重复并且表现得像cron作业的原因 .

AccuracySec - 设置计时器的准确性 . 定时器仅与此字段集一样准确,默认值为1分钟(模拟cron) . 不要求最佳精度的主要原因是提高功耗 - 如果SystemD可以安排下一次运行与其他事件一致,则需要更少地唤醒CPU . 上面示例中的 1ms 并不理想 - 我通常在我的子分钟预定作业中将精度设置为 1 (1秒),但这意味着如果您查看显示"Hello World"消息的日志,那么'd see that it is often late by 1 second. If you'就可以了,我建议将精度设置为1秒或更长 .

您可能已经注意到,此计时器不会在每个挂钟时段的开始处开始(即,它不会在时钟的第10秒开始,然后是20,依此类推) . 相反,只是在计时器瘫痪时发生 . 如果系统在12:05:37启动,则下次命令运行时间为12:05:47,然后是12:05:57等 . 如果您对实际挂钟精度感兴趣,那么您可以想要替换 OnBootSec 和 OnUnitActiveSec 字段,而是使用您想要的计划设置 OnCalendar 规则(根据我的理解,使用日历格式不能超过1秒) . 上面的例子也可以写成:

OnCalendar=*-*-* *:*:00,10,20,30,40,50

最后注意:正如您可能猜到的那样, helloworld.timer 单元启动 helloworld.service 单元,因为它们具有相同的名称(减去单元类型后缀) . 这是默认设置,但您可以通过为 [Timer] 部分设置 Unit 字段来覆盖它 .

更多血腥细节可在以下网址找到:

java30秒规则_每30秒运行一次cron相关推荐

  1. android 延迟2秒执行_每天30秒让你更懂汽车(10自动变速器2执行装置)

    本篇内容 848字,阅读时长约 55 秒 执行装置包括换挡离合器.换挡制动器和单向离合器等. 控制装置根据汽车不同行驶条件,分别在执行装置中建立或卸除油压, 从而得到自动变速器的不同挡位. 1.换挡离 ...

  2. python unique函数_每30秒学会一个Python小技巧,GitHub星数4600+

    作者 | xiaoyu,数据爱好者来源 | Python数据科学(ID:PyDataScience)很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经 ...

  3. 30秒Python轻松入门-目录

    我之前写过几本Python.C.C++的编程图书,通过趣味游戏开发.互动艺术学编程: 然而,即使对于比较容易学的Python,还是有读者反馈说编程太难了. 基于此,给自己挖一个坑,准备出一套更容易上手 ...

  4. 开机启动win7,自动启动突出显示的选择之前的秒数有30秒

    遇到问题:重装了系统,win7开机,会"显示自动启动突出显示的选择之前的秒数有30秒":这时候的30秒显得时间太长,一般都不会愿意等. 解决问题:一开始还以为是bios里面修改设置 ...

  5. cron 每两周执行_如何每两周/月/天执行一次cron作业

    cron 每两周执行 We may want to run some jobs for every two weeks/months/days- under some situation such a ...

  6. java每五分钟执行一次_Cron表达式每N分钟运行一次

    如果你想每隔_2665302分钟运行一次cron,有三种情况需要考虑: 每 n 分钟(60可以被_2665304整除) 每分钟 n 分钟 YYYY-MM-DD HH:MM:00 (通用) 这是两个完全 ...

  7. 批处理dir 保存到变量中_批处理|看大神如何教您30秒搞定批量提取文件名!

    本文转自公号:UX2088|冰枫大叔 大家好,我是冰叔,又有好几个火星时间没见啦!那么冰叔今天给大家带来的是什么呢?带来的是我们日常工作当中经常会使用到的一项任务,那就是|批|量|提|取|文|件|名| ...

  8. fileinputstream resources 读取文件_压缩20M文件从30秒到1秒,包教包会

    作者:不学无数的程序员链接:https://www.jianshu.com/p/25b328753017 压缩20M文件从30秒到1秒的优化过程 有一个需求需要将前端传过来的10张照片,然后后端进行处 ...

  9. 获取朋友圈照片_朋友圈可以发 30 秒视频啦!用微视这个新功能就能办到

    对于许多热爱分享生活中所见所闻的朋友来说,在发朋友圈时可能都会有这样的感觉:只能分享 15 秒以内的视频,完全不够用啊. 如果你也有同样的困扰,今天,A 君就给你介绍一个实用新功能,让你能够在朋友圈中 ...

最新文章

  1. NSCache和NSURLCache网络缓存优化
  2. joomla源代码探析(五) framework.php
  3. CNDO-INTGRL-SS-BINTGS-斯莱特轨道指数--- 精确方法
  4. 软件安装被分成了两个iso文件怎么安装
  5. 嘉年华回顾丨Eygle带你领略数据库技术和生态的发展演进
  6. 禁止i5笔记本按Ctrl+Alt+向下键翻转屏幕
  7. android存电话号码,如何从android中删除联系人的电话号码?
  8. DisplayTag汉化
  9. 【DirectX】D3D中基本图形绘制函数形参意义(总结)
  10. java影视app对接cms,原生影视App双端对接飞飞CMS
  11. Visual C++网络编程经典案例详解 第9章 实用播放器 编程基础 播放mp3文件 读取文件
  12. 云服务器应用打不开,云虚拟主机网站打不开等常见错误提示解决方法
  13. Tic Tac Toe
  14. 2020携程java面试题整理,开发实习一面面经
  15. 如何从“固定型”思维模式转化为“成长型”思维模式
  16. LeetCode-1264. 页面推荐(中等)
  17. Android 数据持久化
  18. python爬虫登录微博_为爬虫获取登录cookies: 使用Charles和requests模拟微博登录
  19. 用mac的chrome浏览器调试 Android 手机的网页
  20. C++ 中内存对齐原理及作用

热门文章

  1. 微型计算机芯片上的位数,微处理器芯片的位数指的是什么
  2. Tapestry经典入门教程
  3. 微信小程序怎么制作自己的程序呢?简单明了的步骤分享
  4. python相关性分析函数_python实现相关性分析
  5. 2021最新 阿里云邮箱域名解析设置要求
  6. Odoo(Openerp v8)官方模块一览表
  7. 一名大二废柴今后目标
  8. 使用LSV进行通视分析教程
  9. CSAPP datalab
  10. html禁止双击选中文本,CSS阻止页面双击选中文本