0

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

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

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

4

1 回答 1

1

我不知道我是否正确理解了这个问题,但也许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

于 2021-02-04T19:05:56.613 回答