bash 学习笔记3
shell 脚本之间的同步:
java中的同步比较简单,无外乎就是synchronize,lock,读写锁,condition之类的。shell脚本之间通过创建lock文件来同步。
如:
declare -r INVOICES_LOCKFILE=”/var/lock/invoices_lock”
while test ! -f “$INVOICES_LOCKFILE” ; do
printf “Waiting for invoices to be printed...\n”
sleep 10
done
touch “$INVOICES_LOCKFILE”
检查lock文件,如果不存在就生成lock文件,去做任务,任务结束后删除掉lock文件,当然可以加入一些超时的操作。
此外,还可以使用NamedPipe,使用命令mkfifo生成一个namedpipe,类似于shell脚本中的pipe