【问题标题】:How can you starting and stop a meteor server remotely?如何远程启动和停止流星服务器?
【发布时间】:2013-01-12 04:42:46
【问题描述】:

我正在使用meteor。您可以使用meteor run 运行流星服务器。假设我有自己的服务器(unix),可以通过 ssh 进入。我有一个构建脚本,可以将 git repo 中的最新源代码复制到该服务器上。我需要该脚本来停止最后运行的流星服务器,并在传输文件后启动新的流星服务器。 以编程方式启动和停止流星服务器的好方法是什么?

【问题讨论】:

  • 我听说upstart 在这方面很有用。

标签: node.js unix build build-automation meteor


【解决方案1】:

Meteor 构建在 Node.js 之上。您总是可以创建一个查找 node.js 并退出它的脚本(bash 脚本)。我从未亲自尝试过,但流星中有一个名为process.exit() 的节点命令。

还请记住,使用meteor run 是为了开发。一旦你将你的包捆绑起来,它就会运行 node.js

还可以查看一个名为 meteorite (https://github.com/oortcloud/meteorite) 的项目,您还可以从 git 以及您的流星本身更新包

编辑:我忘记了流星扫描文件更改并自动将其更新到客户端的神奇能力,而无需重新启动,中断最少!

【讨论】:

  • 这是一个内部应用程序(仅限公司内部网),所以我想尽可能使用内置的 mongo 设置,以使运行、使用和积极开发应用程序尽可能简单,无需在 vm 上进行额外设置(现在已经安装了 nodejs 和流星)。
  • 确实没有必要重新启动流星。如果您在运行时复制并粘贴更新,它将在文件上传甚至实时编辑时以热插拔方式处理这些更改。
  • 唉,git repo 包含 .meteor 文件夹(所有源文件),因此当应用程序在运行时替换文件时会(并且确实)崩溃。
  • 我有点困惑,你想更新流星还是你的应用程序的源代码? .meteor 仅包含数据库和流星的内部文件。您可以使用陨石这些很容易地更新这些,它会在启动时自动更新这些
  • 我只是在更新源代码。然而,git repo 包含 .meteor 文件夹。