代码之家  ›  专栏  ›  技术社区  ›  Marcos Placona

Ruby脚本作为服务

  •  8
  • Marcos Placona  · 技术社区  · 15 年前

    好吧,标题说的都是。我有一个Ruby脚本,我想作为一个服务(我可以启动和停止)在我的Linux设备上运行。我能在窗户上找到怎么做 here

    一些读数指向创建守护进程或cron任务。

    我只需要一些简单的东西,我可以在我的盒子重新启动时调用,并且可以随时停止/启动。我的脚本有一个内部睡眠调用,并在“永恒循环”中运行

    提前谢谢

    3 回复  |  直到 15 年前
        1
  •  14
  •   Tombart    11 年前

    实际上,我发现了一种更好的方法,那就是使用Ruby脚本。

    我就是这样做的:

    首先,我安装了守护进程

    gem install daemons
    

    然后我做到了:

    require 'rubygems'
    require 'daemons'
    
    pwd  = File.dirname(File.expand_path(__FILE__))
    file = pwd + '/runner.rb'
    
    Daemons.run_proc(
       'my_project', # name of daemon
       :log_output => true
     ) do
       exec "ruby #{file}"
    end
    

    然后我创建一个名为runner.rb的文件,在该文件中我可以调用脚本,例如:

    require "/var/www/rails/my_project/config/environment"
    Post.send('details....')
    

    守护进程是一颗伟大的宝石!

        2
  •  3
  •   ennuikiller    15 年前

    RAA - deamons 是从Ruby脚本创建Unix守护进程的非常有用的工具。

        3
  •  0
  •   Daniel Da Cunha Mr. Alien    10 年前

    从1.9.x开始,Ruby具有内置功能:

    Process.daemon