计划的cron作业在OS启动时运行meteor

时间:2016-02-21 12:21:08

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

我安排了cron作业,用于在Debian 7和Centous 6.5上系统启动时运行使用meteor开发的项目。一切都很好,直到不明原因崩溃。

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

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

3 个答案:

答案 0 :(得分:1)

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

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

您应该从https://rocket.chat/releases/

下载已编译的版本

答案 1 :(得分:0)

要回应你的第一个问题,当你的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

将其设置为在启动时启动。 希望它有所帮助

答案 2 :(得分:0)

有一个名为Passenger的优秀工具

https://www.phusionpassenger.com/

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

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