如何让PM2监听Vagrant共享目录的变化?
How to get PM2 to watch for changes in Vagrant's shared directory?
我正在使用 Vagrant 1.8.1
and VirtualBox 5.0.16r105871
并配置一个 ubuntu/wily64
盒子。我在客户机上安装了 Node 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 一起工作?或者我应该使用不同的 method/module.
当我需要监视驻留在主机上但安装在 Vagrant VM 中的文件夹(如共享目录)时,usePolling 选项使监视功能对我有用。尝试像这样将其添加到您的 JSON 配置中:
{
"apps": [{
"name": "mean-boilerplate",
"script": "index.js",
"watch" : ["index.js"],
"watch_options" : {"usePolling": true},
"env": {
"NODE_ENV": "development",
}
}]
}
我也遇到过类似的问题,现在已经解决了。
我正在使用 vagrant 2.2.0 并使用 ubuntu/xenial64 box(当前版本为 16.04)。
起初,我尝试添加这个选项
"watch_options" : {"usePolling": true},
有更多与轮询时间相关的选项(interval 和 binaryInterval)(参考:https://github.com/paulmillr/chokidar#api)。
由于默认间隔太快,有人建议设置更宽松的间隔。
但是,即使我设置了足够的时间间隔,pm2 也会消耗过多的计算机资源并且我的计算机风扇节流。
已有问题https://github.com/Unitech/pm2/issues/1314
我不知道为什么 usePolling 效率低下。但是正如作者所说,usePolling watch files over the network,我想这就是问题的原因,我猜。
因此,我放弃了 usePolling 选项,并找到另一种方法来通知从主机到客户机的文件更改。
我找到的解决方案是,使用 'vagrant-fsnotify' 插件。 https://github.com/adrienkohlbecker/vagrant-fsnotify
自述文件页面中详细描述了插件的用法。
结果是?成功的。我没有监控硬件资源,但由于我的风扇沉默,我认为它已经解决了。
我正在使用 Vagrant 1.8.1
and VirtualBox 5.0.16r105871
并配置一个 ubuntu/wily64
盒子。我在客户机上安装了 Node 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 一起工作?或者我应该使用不同的 method/module.
当我需要监视驻留在主机上但安装在 Vagrant VM 中的文件夹(如共享目录)时,usePolling 选项使监视功能对我有用。尝试像这样将其添加到您的 JSON 配置中:
{
"apps": [{
"name": "mean-boilerplate",
"script": "index.js",
"watch" : ["index.js"],
"watch_options" : {"usePolling": true},
"env": {
"NODE_ENV": "development",
}
}]
}
我也遇到过类似的问题,现在已经解决了。
我正在使用 vagrant 2.2.0 并使用 ubuntu/xenial64 box(当前版本为 16.04)。
起初,我尝试添加这个选项
"watch_options" : {"usePolling": true},
有更多与轮询时间相关的选项(interval 和 binaryInterval)(参考:https://github.com/paulmillr/chokidar#api)。
由于默认间隔太快,有人建议设置更宽松的间隔。
但是,即使我设置了足够的时间间隔,pm2 也会消耗过多的计算机资源并且我的计算机风扇节流。
已有问题https://github.com/Unitech/pm2/issues/1314
我不知道为什么 usePolling 效率低下。但是正如作者所说,usePolling watch files over the network,我想这就是问题的原因,我猜。
因此,我放弃了 usePolling 选项,并找到另一种方法来通知从主机到客户机的文件更改。
我找到的解决方案是,使用 'vagrant-fsnotify' 插件。 https://github.com/adrienkohlbecker/vagrant-fsnotify
自述文件页面中详细描述了插件的用法。
结果是?成功的。我没有监控硬件资源,但由于我的风扇沉默,我认为它已经解决了。