【问题标题】:Scheduled cron jobs to run meteor on OS boot计划的 cron 作业在操作系统启动时运行流星
【发布时间】:2016-02-21 12:21:07
【问题描述】:

当系统在 Debian 7 和 Centous 6.5 上启动时,我为运行使用流星开发的项目安排了 cron 作业。一切都运行良好,直到未知原因崩溃。

Cron 包含运行 Rocket.Chat 项目的命令,该项目是用流星开发的。 当我通过 ssh 连接运行meteor 命令时,Rocket.chat 一直运行到 ssh 连接打开。

最后我想知道如何在系统启动时运行meteor或node.js项目,因为该项目在系统关闭或杀死cron之前不会崩溃。

【问题讨论】:

  • 你能显示你的 crontab 吗?没有起点就很难诊断。
  • @DavidWeldon 我的 cron 包含这个命令:cd Rocket.Chat; meteor run。我认为根据link 我必须做一些事情来发布项目并在 cron 中运行最终输出。?

标签: linux node.js meteor debian centos6.5


【解决方案1】:

保持 NodeJS 应用程序在启动时运行和启动的一个好方法是使用 PM2 (https://github.com/Unitech/pm2)。 Rocket.Chat 甚至在应用的根文件夹中有一个示例配置文件。

另外,请确保您不要在生产环境中使用meteor 命令,它仅用于开发,因为它具有许多调试功能,会使应用程序变慢。

你应该从https://rocket.chat/releases/下载编译后的版本

【讨论】:

  • 我为自己开发了一点rocket.chat。我该如何编译它?
  • 你需要朗姆酒meteor build
【解决方案2】:

为了回应你的第一个问题,当你的 ssh 连接断开时流星关闭,你总是可以使用 nohup

 nohup meteor > /dev/null &

我将 /dev/null 设置为输出,但如果您在其中指定一个文件,您将有一个通常打印到屏幕上的日志。当您断开连接时,您的流星将继续运行:)。

在启动时运行服务时,您实际上并不需要 cron,您可以创建一个脚本。如果使用 Debian 或基于 debian 的发行版(正如您的标签之一所暗示的那样),只需复制框架脚本

cp /etc/init.d/skeleton /etc/init.d/myCoolNodeProject

并使用您的环境编辑您的文件,了解如何开始停止您的 nodejs 服务

然后运行

 update-rc.d myCoolNodeProject defaults

将其设置为在启动时启动。 希望对你有帮助

【讨论】:

    【解决方案3】:

    有一个很棒的工具叫Passenger

    https://www.phusionpassenger.com/

    这允许您设置 NGINX 代理以在端口 80 上运行所有流星应用程序,它会在不需要 cron 作业和担心如何设置 nohup 的情况下负责运行进程。

    他们的帮助很好,Passenger 很容易与 NGINX 虚拟主机配置集成,您不会回头

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 2014-01-14
      • 2016-07-17
      • 2017-10-22
      相关资源
      最近更新 更多