我在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