linux运行多个sh,Linux 限制两个shell脚本同时执行

Linux 限制两个shell脚本同时执行,问题出现的原因,由于现在发版是用通过执行脚本,都会都过mvn打包,同时执行导致问题。

解决方案在脚本执行前,检查、加锁、、、

#!/bin/bash

{

flock -n 3

if [ $? -eq 1 ]

then

echo "other sh running"

while [ 1 ]

do

flock -n 3

[ $? -ne 1 ]&&break;

sleep 1

done

3<>/tmp/.lock

fi

echo "lock and wait"

sleep 10

} 3<>/tmp/.lock

非阻塞方式,没有锁,加锁继续往下执行,有锁循环检查,直到没有锁再继续执行。

选项和参数:

-s,--shared:获取一个共享锁,在定向为某文件的FD上设置共享锁而未释放锁的时间内,其他进程试图在定向为此文件的FD上设置独占锁的请求失败,而其他进程试图在定向为此文件的FD上设置共享锁的请求会成功。

-x,-e,--exclusive:获取一个排它锁,或者称为写入锁,为默认项

-u,--unlock:手动释放锁,一般情况不必须,当FD关闭时,系统会自动解锁,此参数用于脚本命令一部分需要异步执行,一部分可以同步执行的情况。

-n,--nb, --nonblock:非阻塞模式,当获取锁失败时,返回1而不是等待

-w, --wait, --timeout seconds:设置阻塞超时,当超过设置的秒数时,退出阻塞模式,返回1,并继续执行后面的语句

-o, --close:表示当执行command前关闭设置锁的FD,以使command的子进程不保持锁。

-c, --command command:在shell中执行其后的语句

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值