计划的cron作业在OS启动时运行meteor
我安排了cron作业,用于在Debian 7和Centous 6.5上启动系统时使用meteor开发的项目。 而且一切都很好,直到不明原因坠毁。
Cron包含运行用meteor开发的Rocket.Chat项目的命令。 当我通过SSH连接运行meteor
命令,Rocket.chat运行,直到ssh连接打开。
最后,我想知道如何在系统启动时运行meteor或node.js项目,因为该项目不会崩溃,直到系统closures或杀死cron。
保持NodeJS应用程序运行并启动的一个好方法是使用PM2( https://github.com/Unitech/pm2 )。 Rocket.Chat甚至在应用程序的根文件夹中有一个示例configuration文件。
另外,请确保在生产环境中不要使用meteor
命令,它只是用于开发,因为它有很多debuggingfunction,使应用程序变得更慢。
为了回应你的第一个问题,当你的ssh连接死亡时meteorclosures,你总是可以使用nohup
nohup meteor > /dev/null &
即时设置/ dev / null作为输出,但如果你指定一个文件,你会得到什么通常打印到屏幕的日志。 当你断开你的meteor将继续运行:)。
在启动时运行一个服务,你真的不需要cron,你可以创build一个脚本。 如果使用基于Debian或Debian的发行版(如您的标签所暗示的),只需复制骨架脚本即可
cp /etc/init.d/skeleton /etc/init.d/myCoolNodeProject
并在您的环境中编辑您的文件,了解如何开始停止您的nodejs服务
然后运行
update-rc.d myCoolNodeProject defaults
将其设置为在启动时启动。 希望能帮助到你
有一个很好的工具称为乘客
https://www.phusionpassenger.com/
这可以让你设置一个NGINX代理来运行80端口上的所有meteor应用程序,并且在运行这些进程之后,不需要cron作业,也不必担心如何设置nohup。
他们的帮助很好,Passenger与NGINX虚拟主机configuration很容易集成,不会回头