如何让PM2监视Vagrant共享目录中的更改?

时间:2016-04-25 15:48:06

标签: vagrant pm2

我正在使用Vagrant 1.8.1VirtualBox 5.0.16r105871并配置ubuntu/wily64框。我在访客上安装了节点4.4.3。我使用以下过程来启动并运行服务器。

cd /vagrant
npm install
npm install -g pm2
pm2 startup ubuntu
sudo su -c "env PATH=$PATH:/usr/bin pm2 startup ubuntu -u vagrant"
pm2 start process.json
pm2 save

我尝试使用--watch选项启动PM2但是没有用。 我尝试使用PM2进程配置,但只有在客户机器上触摸文件时它才有效。

{
  "apps": [{
    "name": "mean-boilerplate",
    "script": "index.js",
    "watch": ["index.js"],
    "env": {
      "NODE_ENV": "development",
    }
  }]
}

有关如何使用PM2的任何想法?或者我应该使用不同的方法/模块。

2 个答案:

答案 0 :(得分:0)

当我需要观看驻留在主机上但挂载在Vagrant VM(如共享目录)中的文件夹时,usePolling选项使监视功能对我有用。尝试将它添加到您的JSON配置中:

{
  "apps": [{
    "name": "mean-boilerplate",
    "script": "index.js",
    "watch" : ["index.js"],
    "watch_options" : {"usePolling": true},
    "env": {
      "NODE_ENV": "development",
    }
  }]
}

答案 1 :(得分:0)

我也遇到过类似的问题,但是现在我已经解决了。

我正在使用vagrant 2.2.0并使用ubuntu / xenial64框(当前版本为16.04)。

起初,我尝试添加此选项

"watch_options" : {"usePolling": true},

还有更多与轮询时间有关的选项(间隔和binaryInterval)(参考:https://github.com/paulmillr/chokidar#api)。

由于默认间隔太快,有人建议设置更大的间隔。

但是,即使我设置了足够的间隔,pm2也会消耗过多的计算机资源,并且计算机风扇也会节流。

已经有问题https://github.com/Unitech/pm2/issues/1314

我不知道为什么usePolling效率低下。但是正如作者所说,usePolling 通过网络监视文件,我想这可能是问题的原因。

因此,我放弃了usePolling选项,并找到了另一种通知文件从主机更改为客户机的方法。

我找到的解决方案是使用'vagrant-fsnotify'插件。 https://github.com/adrienkohlbecker/vagrant-fsnotify

自述文件页面很好地描述了插件的用法。

结果是?成功了我没有监视硬件资源,但是由于我的粉丝沉默,我认为它已解决。