【发布时间】:2013-04-22 08:48:43
【问题描述】:
在远程主机中,我想运行 3 个程序 A 、 B 和 C 但我希望它们在不同的时间运行,所以如果 A 正在运行,B 和 C 就不能运行 所以当我想运行 A 时,如果我检测到文件被锁定,我会等到它被解锁
我的想法是在这些程序之间创建一个锁定文件,例如进程之间的互斥锁 喜欢:
如果文件被解锁;然后 锁定文件 ./程序A 解锁文件 菲
有人告诉我flock 可以用于此目的
我在谷歌上搜索
代码是这样的:
(
羊群-s 200
。/程序
) 200>/var/lock/mylockfile
但我不知道如何将其制作为 shell 脚本 我制作 shell 脚本 trylock.sh 之类的
#!/bin/bash
set -e
(
flock -x -w 10 200
sleep 20
) 200 > lockfile
当我运行它时,我得到了
trylock.sh: line 7: syntax error near unexpected token `200'
另外,如何将锁超时设置为无限
谁能给出一些示例脚本? 谢谢
【问题讨论】: