2016-02-21 58 views
1

我的计划cron作业用于运行在系统启动Debian 7和Centous 6.5时使用流星开发的项目。一切都运转良好,直到它不明原因坠毁。计划的cron作业在操作系统启动时运行meteor

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

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

+0

你能告诉你的crontab?没有起点就很难诊断。 –

+0

@DavidWeldon我的cron包含这个命令:'cd Rocket.Chat;流星奔跑'。我认为根据[链接](http://stackoverflow.com/questions/25677701/how-to-run-meteor-forever-and-is-it-good-using-3rd-party-database)我必须做点什么在cron中释放项目并运行最终输出。 – majidfathi69

回答

0

为了应对你的第一个问题,是流星关闭时,你的ssh连接死了,你可以随时使用nohup的

nohup meteor > /dev/null & 

IM设置的/ dev/null作为输出,但如果您指定的文件存在你将有通常打印到屏幕上的日志。当你断开你的流星将继续运行:)。

由于在启动时运行服务,您不需要真正需要cron,您可以创建一个脚本。如果使用Debian或基于Debian发行版(如您的标签中的一个暗示)刚才复制的骨架脚本

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

,并与您如何开始停止你的NodeJS服务

环境中编辑文件,然后运行

update-rc.d myCoolNodeProject defaults 

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

1

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

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

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

+0

我为自己开发了一下rocket.chat。我如何编译它? – majidfathi69

+0

你需要朗姆酒'流星建立' –

0

下载编译的版本有一个叫乘客极好的工具

https://www.phusionpassenger.com/

这可以让你建立一个NGINX代理运行端口80上的所有流星应用并且它在运行流程之后不需要cron作业,也不用担心如何设置nohup。

他们的帮助是好的,而且乘客与NGINX虚拟主机CONFIGS,你不会回头所以很容易集成