2014-01-26 2 views
1

Я новичок в бродяжнике, и я создаю машину разработки Node.js CentOs 6.5 x86_64 в VirtualBox 4.3.6 и упакую ее в бродячий ящик. Моей операционной системой является Windows 8.1 Pro.Как запустить инструмент forever для узла в резервной оболочке обеспечения

То, что я пытаюсь сделать, это создать положение в оболочке, что при запуске vagrant upbootstrap.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 

Запуск forever start -w app.js в бродячей SSH работает отлично без проблем. Во время поиска в google некоторые говорят, что это проблема с настройками разрешения. Я пытался добавить бродячую пользователя в группу администратора и выполните следующие команды:

$ 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 

ответ

0

Это немного выстрел в темноте, но это может быть проблемой Pathing. Моя настройка была другой (Ubuntu, Puppet), но симптомы, связанные с возможностью выполнения Forever из командной строки, но не с помощью инициализации, схожи. Я должен был предоставить полный путь к исполняемому файлу Forever для его запуска через резерв. например - «/ USR/местные/узел/узел по умолчанию/бен/навсегда начать app.js»

+0

хорошо я предполагаю, что я должен использовать его внутри VirtualBox без бродяга –

0

Помните, что скрипты инициализации работают как корень

Смежные вопросы