我有一个shell脚本,将内容写入文件中,
#!/bin/bash
SLEEP=1
FILE_PATH=${1}
while true
do
ps aux wc -l > ${FILE_PATH}
sleep ${SLEEP}
done
我有另一个PHP脚本,该脚本使用file_get_contents()读取文件的内容。我知道file_get_contents()将制作一个lock_ex(独家锁定)。
我的问题是
- shell脚本在写入文件时会锁定文件吗?如果是,它将使用哪种类型的锁,共享。?
- 由于我的php脚本也锁定了文件,它是否会阻止shell脚本编写并使shell脚本不可用的文件?
由于我以1秒为间隔编写了shell脚本中的文件。我害怕在两个脚本中失败文件写入/阅读的机会。
通常,任何文件写入都需要独家锁定。
PHP脚本将无法获取其锁定,直到Shell脚本发布为止。这导致了所谓的僵局,当两个进程争夺相同的资源时。
您可以使用一些策略来进行更丰富的分解合作,但我建议使用不同的策略来生成您的流程列表。