我需要运行一个独立的ruby脚本作为Unix(linux)守护进程。
运行该守护进程后,我需要用它运行另一个Ruby方法。
我使用ruby-daemon
在我的机器上安装了gem install 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
现在我该如何检查守护程序是否已正确启动?
如何用它调用方法?
答案 0 :(得分:1)
看起来你的帖子上的格式是偏离的,所以希望有人可以解决这个问题,但我认为这里的问题是你是在定义一个模块,但实际上没有开始你定义的方法。
Daemons实用程序仅执行提供的脚本。在尝试诊断守护进程本身可能出错的地方之前,您应该测试您的“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
还有其他方法可以使用守护进程传递模块来运行它,但是你不是那样使用它。