【问题标题】:Ruby daemon not workingRuby 守护进程不工作
【发布时间】:2026-01-23 15:00:01
【问题描述】:

我需要运行一个独立的 ruby​​ 脚本作为 Unix (linux) 守护进程。

运行该守护程序后,我需要使用它运行另一个 Ruby 方法。

我使用gem install daemon 在我的机器上安装了ruby-daemon gem。

我做了测试守护程序。

我的 test.rb 文件是:

module Test
    def test_method
        @s =" ITS WORKING !"
        file=File.new("/home/username/test.txt", "w")

        file.puts @s

        file.close
    end
end

我的 test_control.rb 文件是:

# this is myserver_control.rb

  require 'rubygems'        # if you use RubyGems
  require 'daemons'

  Daemons.run('test.rb')

之后我运行以下命令:ruby test_control.rb start

现在如何检查守护程序是否正常启动?

如何使用它调用方法?

【问题讨论】:

    标签: ruby linux daemon


    【解决方案1】:

    看起来您帖子上的格式有问题,所以希望有人可以解决这个问题,但我认为这里的问题是您正在定义一个模块,但实际上并没有触发您定义的方法。

    守护程序实用程序仅执行提供的脚本。在尝试诊断守护程序本身可能出现的问题之前,您应该测试您的“test.rb”文件是否可以直接在命令行上运行。

    可能是因为重做test.rb:

    module Test
      def self.test_method
        @s =" ITS WORKING !"
        file = File.new("/home/username/test.txt", "w")
    
        file.puts @s
    
        file.close
      end
    end
    
    Test.test_method
    

    还有其他使用守护程序的方法,您可以将模块传递给它以运行,但您并没有那样使用它。

    【讨论】: