将在编写内容时将脚本锁定文件



我有一个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(独家锁定)。

我的问题是

  1. shell脚本在写入文件时会锁定文件吗?如果是,它将使用哪种类型的锁,共享。?
  2. 由于我的php脚本也锁定了文件,它是否会阻止shell脚本编写并使shell脚本不可用的文件?

由于我以1秒为间隔编写了shell脚本中的文件。我害怕在两个脚本中失败文件写入/阅读的机会。

通常,任何文件写入都需要独家锁定。

PHP脚本将无法获取其锁定,直到Shell脚本发布为止。这导致了所谓的僵局,当两个进程争夺相同的资源时。

您可以使用一些策略来进行更丰富的分解合作,但我建议使用不同的策略来生成您的流程列表。

相关内容

  • 没有找到相关文章

最新更新