【问题标题】:Running guard as a daemon proces守护进程作为守护进程运行
【发布时间】:2023-03-02 22:45:01
【问题描述】:

我正在使用 guard 来监视目录,一旦文件上传到目录 Guard 就会触发 rake 进程。

有没有办法将 Guard 作为守护进程运行,在文档中的任何地方都找不到。

【问题讨论】:

    标签: ruby-on-rails daemon guard


    【解决方案1】:

    您应该查看文档 to start guard programmatically on Rails ;)

    简而言之,为 Guard 创建一个初始化器,其中包含:

    require 'guard'
    require 'guard/commander' # needed because of https://github.com/guard/guard/issues/793
    
    # Start Guard only with rails.
    if File.basename($0, '.*') == 'rails'
      fork do
        if __FILE__ == '(irb)'
        end
    
        Guard.guards 'sass'
        Guard.start :no_interactions => true
      end
    end
    

    【讨论】:

      【解决方案2】:

      Guard 没有作为守护程序运行的内置选项,但您可以使用 nohupampersand 在后台运行它:

      nohup guard &
      

      在后台运行不应向控制台打印任何内容,因此我将重定向流:

      nohup guard >/dev/null 2>&1 &
      

      在这种情况下,我建议停用交互器并在您的Guardfile 中使用文件日志记录:

      interactor :off
      logger device: 'guard.log'
      

      【讨论】:

        【解决方案3】:

        如果我正确理解您的问题,即作为守护进程运行 guard,您可以将 daemon 选项提供给 guard 为:

        guard 'rails', daemon: true do
          watch(...)
          ...
        end
        

        参考其他guard options

        【讨论】:

        • 感谢您的宝贵意见,但我认为您提供的参考是针对护栏的。我希望守卫自己作为守护进程运行。守护宝石。
        • 顺便说一句,你用“ruby on rails”标签发布了你的问题,实际上大多数人都使用护栏(比如我),所以这个答案实际上对我来说更相关
        最近更新 更多