Jekyll监听文件变化的问题解决

从开始使用jekyll作为博客系统就有一个问题,那就是如何持续的集成.

主要要求是简单方便.

Jekyll可以启动一个server服务,启动参数中有--watch(监听文件变化)和--detach(后台运行)选项,看起来这两个参数一起使用就完事了.

但是比较尴尬的是,这两个一起是不起作用的.

后来我使用了半年的方式是:

setsid jekyll serve --host 0 --watch --force_polling &>/dev/null </dev/null & 

这个为我工作了半年,最近出现了问题,会导致ruby进程把CPU拉满,进而卡死我的服务器,这不能忍啊….

因此今天想替换方案.

第一种方案:

--watch参数运行jekyll服务,然后再服务器上安装tmux,这样就可以变相的实现后台运行.

有点蠢.

第二种方案:

放弃jekyll的服务,仅使用它的编译功能.

主要思路是:

  1. 客户端push到服务器,触发git的钩子.
  2. 钩子里面执行jekyll build -s -d.将文件编译到某个目录.
  3. 在nginx上启动监听,将自己想要的子域名监听到对应的文件夹上.

这样实现了:

  1. 脱离终端,不用我一直为jekyll开启一个终端.
  2. 监听变化,当我写完博客,push到服务器,剩余的事情由服务器自动完成.
  3. 节省了一直运行在服务器上的jekyll进程,这个进程占用内存160M.

160m内存听起来不多,但是对于我这个穷人来说,太重要了.我的乞丐版阿里云服务器已经撑不住了,刚升了级.能省还是省一下啊,都是钱.

ChangeLog

2019-04-21 完成

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券