【发布时间】:2014-03-25 00:27:22
【问题描述】:
我正在使用 Supervisord 运行一个虚拟机来启动和维护几个重要的后台进程。我使用 vagrant 和 virtualbox 创建虚拟机,并使用 puppet 对其进行配置。当机器启动时,supervisord 会抓取 /etc/supervisor/conf.d 中的所有 .conf 文件并尝试运行它们。不幸的是,当我运行时
Vagrant up
supervisord 在共享同步文件夹之前立即开始尝试运行 conf.d 中的文件。所以启动一些像 Xvfb 这样的后台进程运行得很好,但是启动我的 stat tracker,它位于同步文件夹中,是不可能的。其实我在supervisord日志中看到多次尝试启动进程,抱怨找不到文件,最后放弃了。然后,一旦机器完全运行,我就可以通过 SSH 进入并在 .conf 文件中运行完全相同的命令,然后自己启动该进程。
我创建了一个中间脚本来连续循环,等待同步的文件夹可用,然后启动我想要的进程。但在这种情况下,主管没有办法确保进程保持运行,感觉就像是 hack。
有没有更清洁的方法来做到这一点?也许来自傀儡或流浪者?
【问题讨论】:
标签: virtualbox vagrant puppet supervisord