2014-09-19 3 views
1

Я установил приложение node.js в среде Ubuntu, используя Vagrant/Puppet (сгенерированный с сайта puphpet.com). Я собираюсь отправить завершенный пакет кому-то и хотел бы, чтобы приложение node.js запустило момент, когда «бродяга» заканчивается для них (так что им не нужно беспокоиться о подключении через ssh и запущенные команды) ,Ubuntu + Vagrant + Puphpet: как автоматически запускать приложение node.js при загрузке?

Пакет загрузки puphpet включает в себя папку/puphpet/files/start-always и/exec-always, и мне интересно, могу ли я их использовать.

Или, если я не ошибаюсь, возможно добавить некоторые команды запуска Ubuntu в конец .Vagrantfile (просто не уверен в синтаксисе).

У кого-нибудь есть опыт?

ответ

5

Решение: Выяснено. Для тех, кто должен знать: создайте файл в /puphpet/files/exec-once (или какую бы папку вам ни понадобилось), называемый run.sh (эти файлы загружаются в алфавитном порядке, поэтому, если у вас их несколько, правильно укажите файлы). Пример файла:

#!/bin/bash 
sudo npm install pm2 -g --unsafe-perm 2&>1 >/dev/null 
cd /var/www/app && sudo pm2 start app.js 

В этом случае я установить модуль НПМ под названием «пм2» (2&>1 >/dev/null скроет консоли и сообщения об ошибках). Этот модуль позволяет запускать приложение node.js в качестве службы. Следующая строка должна быть cd в каталоге приложения, а оттуда запустите приложение с sudo pm2.

Предположительно с этой точки вперед приложение node.js будет запускаться/перезагружаться автоматически (в том числе при сбое приложения или при перезапуске Ubuntu), поэтому вам не нужно запускать эту команду более одного раза (следовательно, вместо папки /exec-once из exec-always, который будет запускаться каждый раз, когда вызывается «бродяга вверх», включая будущую загрузку после начальной настройки).

pm2 также имеет функции, позволяющие следить за изменениями в папке, чтобы ваше приложение node.js автоматически перезапустилось, если вы разрабатываете. См. Документацию по pm2 для этих деталей или введите pm2 в ssh.

+5

На самом деле вы должны перенести это на «puphpet/files/startup-always». «Exec-once» и «exec-always» были изменены для ТОЛЬКО запуска во время первого «вверх» или в каждом «условии». Таким образом, если вы «бродяга halt && vagrant up», приложение nodejs больше не будет работать. Проблема, документирующая это: https://github.com/puphpet/puphpet/issues/389 – nover

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