加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash flock:如果无法获取锁定则退出

发布时间:2020-12-15 19:09:33 所属栏目:安全 来源:网络整理
导读:以下锁定机制用于防止cron作业并发运行: #!/bin/bashecho "Before critical section"( flock -e 200 echo "In critical section" sleep 5) 200/tmp/blah.lockfileecho "After critical section" 一起运行两个实例时,稍后等待,直到第一个完成,然后运行。
以下锁定机制用于防止cron作业并发运行:
#!/bin/bash

echo "Before critical section"
(
    flock -e 200
    echo "In critical section"
    sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"

一起运行两个实例时,稍后等待,直到第一个完成,然后运行。这可能导致等待运行的脚本积压。

如何更改此脚本,以便如果flock无法获取锁定,则会终止该脚本?我试过没有成功。

flock -n -e 200 || exit 1

flock -n通过返回失败代码(除了零之外)告诉您失败。您可以在脚本的顶部设置-e,使其在看到任何未选中的错误时退出。

根据您的应用程序,您可能希望退出0以指示无法获取锁定时的成功。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读