bash,上锁

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
自由建客
论坛版主
帖子: 13444
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

bash,上锁

#1

帖子 自由建客 » 2016-10-22 21:20

好像还是有点问题

代码: 全选

# no arg
Lock()
{
	for time in 0.3 0.7 1.1 1.7 2.3 3.1 4.1 0
	do
		if [ -e "$LOCK_FILE" ]; then
			sleep $time
		else
			touch "$LOCK_FILE"
			return 0
		fi
	done
	while :
	do
		if [ -e "$LOCK_FILE" ]; then
			sleep 5.3
		else
			touch "$LOCK_FILE"
			return 0
		fi
	done
}

# no arg
UnLock()
{
	rm "$LOCK_FILE"
}
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: bash,上锁

#2

帖子 lilydjwg » 2016-10-22 21:48

TOCTTOU

还是用 flock 吧。
这些用户感谢了作者 lilydjwg 于这个帖子:
自由建客 (2016-10-23 14:36)
评价: 3.7%
头像
自由建客
论坛版主
帖子: 13444
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: bash,上锁

#3

帖子 自由建客 » 2016-10-22 22:27

lilydjwg 写了:TOCTTOU

还是用 flock 吧。
果然好用 :em11
回复

回到 “Shell脚本”