忽略使用 at 命令运行的重复作业

问题描述

我在 Freebsd9.2 上。(我必须使用这个操作系统)我想用 at 命令运行多个脚本,但我想忽略同时运行一个脚本。

例如:我有3个脚本文件:1.sh、2.sh、3.sh

今天16:20我有一个作业要执行1.sh,当我用相同的时间和脚本运行at命令时,/var/at/jobs中的作业数量变成了2个作业.我想忽略这一点,但脚本 2.sh 可以同时运行。你知道我该怎么做吗?

解决方法

我不知道我是否正确理解了问题,但命令 lockf 可能会有所帮助。

例如在一个终端上试试这个:

$ lockf -t 0 /tmp/a.lock sleep 5

在另一个终端运行:

$ lockf -t 0 /tmp/a.lock echo "sleep finished"

在此示例中,直到命令 sleep 5 不退出,如果您尝试运行另一个命令,您将得到如下结果:

lockf: /tmp/a.lock: already locked

cron 示例:

15 4 * * * lockf -t 0 /tmp/poudriere.lock /usr/local/etc/poudriere.d/cron 12amd64 default

如果锁存在,这会阻止运行脚本/应用程序,因此您可能了解如何通过 at

使用它

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...