Tom*_*unn 71
Cron 只允许至少一分钟。您可以做的是编写一个带有无限循环的 shell 脚本来运行您的任务,然后休眠 5 秒钟。这样你的任务将或多或少每 5 秒运行一次,具体取决于任务本身需要多长时间。
#!/bin/bash
while true; do
# Do something
sleep 5;
done
Run Code Online (Sandbox Code Playgroud)
您可以my-task.sh使用上述内容创建一个文件并使用sh my-task.sh. 您可以选择将其配置supervisor为服务,以便在系统启动等时启动。
听起来确实好像您正在做一些您可能不应该做的事情。这感觉不对。
小智 43
您可以让cron工作每分钟启动一个脚本,从而启动 12 个后台进程:
* * * * * ~/dostuff.sh
Run Code Online (Sandbox Code Playgroud)
dostuff.sh:
(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &
Run Code Online (Sandbox Code Playgroud)
不过,我的问题是,你能在地球上做什么需要每 5 秒运行一次?
blu*_*yed 29
只需使用循环:
while true ; do ./your-script & sleep 5; done
Run Code Online (Sandbox Code Playgroud)
这将启动您的脚本作为后台作业,休眠 5 秒钟,然后再次循环。您可以使用 Ctrl-C 中止它,或使用任何其他条件代替true,例如! test -f /tmp/stop-my-script仅在文件/tmp/stop-my-script不存在时循环。
Dav*_*vid 12
您可以使用 GNU 包mcron,这是“Vixie cron”的替代品。
http://www.gnu.org/software/mcron/manual/mcron.html#Top
“可以轻松地指定更精细的时间点,即秒。原则上,这可以扩展到微秒,但这并未实现。”
您可以使用 SystemD 计时器单元,它将每 5 秒触发一次服务 - 您将其设置为执行您想要的操作。
假设您的服务单元被调用mystuff.service并安装在/etc/systemd/system(如果您想替换用户的 crontab,请查看SystemD 用户服务),那么您可以编写一个计时器单元在启动时运行该服务,然后每 5 秒运行一次,如下所示:
/etc/systemd/system/mystuff.timer
[Unit]
Description=my stuff's schedule
[Timer]
OnBootSec=5
OnUnitActiveSec=5
[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)
然后重新加载systemd配置,启用定时器单元并启动它。
| 归档时间: |
|
| 查看次数: |
378356 次 |
| 最近记录: |