MongoDB 是否会创建一个我可以轮询的文件以确定 prealloc 何时完成?现在我有一个要运行的脚本rs.init(..config..)
,但我需要等待触发它,直到 mongod 启动并运行。
由于tail -f | grep .. | xarg..
日志文件有点不稳定,我想知道是否有其他方法可以确定 mongod 是使用 prealloc 完成的?
MongoDB 是否会创建一个我可以轮询的文件以确定 prealloc 何时完成?现在我有一个要运行的脚本rs.init(..config..)
,但我需要等待触发它,直到 mongod 启动并运行。
由于tail -f | grep .. | xarg..
日志文件有点不稳定,我想知道是否有其他方法可以确定 mongod 是使用 prealloc 完成的?
我们在使用 PHP 驱动程序测试副本集时遇到了同样的问题。在这里,我们使用 mongo shell 的ReplSetTest()
功能来解决这个问题。你可以在这里看到它是如何工作的:
https ://github.com/mongodb/mongo-php-driver/blob/master/tests/utils/myconfig.js#L9
但是,我不确定这对于非测试环境的效果如何,因为您可以提供的选项数量相当有限(例如,您无法正确设置数据目录,因为事情是硬编码的)。用于此的所有函数和代码都在https://github.com/mongodb/mongo/blob/master/src/mongo/shell/replsettest.js的 JavaScript 中 ——这应该给你一个概述它是如何工作的并允许你用您喜欢的语言重写它。
尝试使用inotify(我不确定),例如,如果需要确定文件在写入后关闭:
[maverick@mutabor ~]$ pyinotify -e IN_CLOSE_WRITE /tmp/testfile