gpt4 book ai didi

node.js - 如何在 vagrant Provision shell 中为 Node 运行永久工具

转载 作者:太空宇宙 更新时间:2023-11-04 02:37:05 25 4
gpt4 key购买 nike

我是 vagrant 新手,我正在 VirtualBox 4.3.6 中设置 Node.js CentOs 6.5 x86_64 开发机器,并将其打包到 vagrant 盒子中。我的主机操作系统是Windows 8.1 Pro。

我想做的是在 shell 中创建一个配置,当运行 vagrant up 时,bootstrap.sh 将检查项目目录中是否存在 app.js,如果不存在,它将创建一个临时 app.js 并运行 forever start -w app.js

bash 脚本中一切正常,但是当它到达 forever start -w app.js 行时,我收到此错误。

/tmp/vagrant-shell: line 14: forever: command not found
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

chmod +x /tmp/vagrant-shell && /tmp/vagrant-shell

Stdout from the command:



Stderr from the command:

/tmp/vagrant-shell: line 14: forever: command not found

在 vagrant ssh 中运行 forever start -w app.js 工作正常,没有问题。在谷歌搜索时有人说这是权限设置问题。我尝试将 vagrant 用户添加到管理组并运行以下命令:

$ sudo groupadd admin
$ usermod -G admin vagrant

我还编辑了 /etc/sudoers 文件,并将 SSH_AUTH_SOCK 添加到 env_keep 选项,注释掉 Defaults requiretty 行,并添加了行 %admin ALL=NOPASSWD: ALL。我也遇到同样的错误。

这是我的 bootstrap.sh

#!/usr/bin/env bash
IFS='' read -r -d '' NODEAPP <<'EOF'
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Universe.\n');}).listen(3000, '127.0.0.1');
console.log('Listening at http://127.0.0.1:3000/');
EOF

cd /usr/share/nginx/html
if [ ! -f app.js ]; then
echo "$NODEAPP" >> app.js
fi
forever start -w app.js

这是我的 Vagrantfile:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos65NODE"
config.vm.box_url = "centos65NODE.box"
config.vm.network :private_network, ip: "192.168.50.10"
config.vm.provision :shell, :path => "bootstrap.sh"
end

最佳答案

这有点盲目,但这可能是一个路径问题。我的设置不同(Ubuntu、Puppet),但能够从命令行执行 Forever 但不能通过配置执行的症状是相似的。我必须提供 Forever 可执行文件的完整路径,以便它通过配置运行。例如-“/usr/local/node/node-default/bin/永远启动app.js”

关于node.js - 如何在 vagrant Provision shell 中为 Node 运行永久工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21362376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com