bash – 防止锁传播
发布时间:2020-12-15 18:24:03 所属栏目:安全 来源:网络整理
导读:在bash下进行锁定的简单且看似可靠的方法是: exec 9lockfileflock 9 然而,bash臭名昭着地将这样的fd锁传播给所有分叉的东西,包括执行的程序等. 有没有办法告诉bash不要复制fd?锁定附加到fd是很好的,当程序终止时,无论它如何被终止,它都会被删除. 我知道我
在bash下进行锁定的简单且看似可靠的方法是:
exec 9>>lockfile flock 9 然而,bash臭名昭着地将这样的fd锁传播给所有分叉的东西,包括执行的程序等. 有没有办法告诉bash不要复制fd?锁定附加到fd是很好的,当程序终止时,无论它如何被终止,它都会被删除. 我知道我可以这样做: run_some_prog 9>&- 但这很乏味. 有没有更好的解决方案?
您可以使用-o命令行选项flock(1)(长选项 – 关闭,这可能更适合在脚本中编写自我文档性质)来指定在通过flock执行命令之前应关闭文件描述符(1):
-o,--close Close the file descriptor on which the lock is held before executing command. This is useful if command spawns a child process which should not be holding the lock. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |