【发布时间】:2014-06-21 13:37:23
【问题描述】:
我写了一个小测试脚本来防止我的脚本与flock同时运行:
#!/bin/bash
scriptname=$(basename $0)
lock="/var/run/${scriptname}"
umask 0002
exec 200>$lock
flock -n 200 || exit 1
## The code:
sleep 60
echo "Hello world"
当我与我的用户一起运行脚本并尝试与另一个用户一起运行脚本时,我收到了锁定文件的以下错误消息。
/var/run/test.lock: Permission denied
有什么想法吗?
亲切的问候, 安德烈亚斯
【问题讨论】:
-
您说:“当我与我的用户一起运行脚本并尝试与另一个用户一起运行脚本时”:问题,您是否同时运行两者?或者问题是即使在您的用户运行后执行完成后,以及其他一些尝试运行,也会出现此错误?
-
文件的组是什么?第二个用户是否在该组中?
-
脚本以 user1 身份运行,当我与 user2 同时运行时收到错误消息。
-
其他用户在同一个组中。文件权限是 -rw-r--r--
-
你不是在你的脚本中停下来,即让两个用户同时运行它吗?我猜你正在使用羊群?现在我要问你,当 user1 运行它时会发生什么,而 user2 在 60 秒后运行它,即 user1 的实例完成?>???????它运行没有问题>?
标签: bash permissions flock