1

我已经使用 Vagrant/Puppet(从 puphpet.com 生成)在 Ubuntu 环境中设置了一个 node.js 应用程序。我要将完成的包发送给某人,并希望 node.js 应用程序在“vagrant up”为他们完成的那一刻运行(这样他们就不必费心通过 ssh 连接和运行命令) .

puphpet 下载包包括一个文件夹 /puphpet/files/start-always 和 /exec-always 我想知道是否可以使用它们。

或者,如果我没记错的话,也可以在 .Vagrantfile 的末尾添加一些 Ubuntu 运行命令(只是不确定语法)。

有人有这方面的经验吗?

4

1 回答 1

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

在这种情况下,我正在安装一个名为“pm2”的 npm 模块(2&>1 >/dev/null将隐藏控制台和错误消息)。此模块允许您将 node.js 应用程序作为服务运行。下一行我们必须cd进入应用程序目录,然后从那里启动应用程序sudo pm2

假设从现在开始,node.js 应用程序将自动运行/重新启动(包括当应用程序崩溃或 Ubuntu 重新启动时),因此您不必多次运行此命令(因此/exec-once文件夹而不是exec-always,它将运行每次调用“vagrant up”,包括初始设置后的未来启动)。

pm2 还具有允许您监视文件夹中的更改的功能,因此如果您正在开发,您的 node.js 应用程序将自动重新启动。有关这些详细信息,请参阅 pm2 文档或输入pm2ssh。

于 2014-09-22T05:07:57.730 回答