我是新來的流浪漢,我在VirtualBox 4.3.6中設置了一個Node.js CentOs 6.5 x86_64開發機器並將它打包到一個流浪盒子中。我的主機操作系統是Windows 8.1 Pro。如何永久運行節點流浪工具外殼
我所試圖做的是創造外殼,運行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
在顛沛流離的SSH運行forever start -w app.js
沒有問題的正常工作。雖然在谷歌搜索有人說這是一個權限設置問題。我嘗試添加流浪漢用戶到admin組並通過運行下面的命令:
$ 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
嗯,我想我必須使用它在VirtualBox無遊民腳本 –