首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby Daemons Gem

Ruby Daemons Gem
EN

Stack Overflow用户
提问于 2009-11-19 04:41:44
回答 1查看 2.7K关注 0票数 1

我安装了红宝石守护进程。为了确保它正常工作,我创建了一个脚本,该脚本每5秒打印一次文件。然后,我使用位于http://daemons.rubyforge.org/的自述文件中给出的简单示例创建了另一个文件来运行该脚本。我需要rubygems和守护进程。然后我输入'ruby mycontrol.rb start‘。他们使用的示例有某种类型的消息说'(myserver.rb现在正在后台运行)‘,我看不到这一点,但我没有收到任何错误。如果我执行'ps -u myusername‘,我看到要进行守护的文件在进程中列出,但似乎没有运行,因为没有任何内容写入文件。

这是我的来源:

代码语言:javascript
复制
# this is mycontrol.rb

require 'rubygems'
require 'daemons'

Daemons.run(daemon.rb)

还有..。

代码语言:javascript
复制
# this is daemon.rb

loop do 
 open('file.out', 'w') do |f|
  f.puts 'hello everybody'
 end
 sleep(3)
end

我的所作所为有没有让你觉得我做错了?

谢谢,托尼

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-19 06:32:51

我试过你的例子,它对我很有效(Ruby 1.8.6 on Linux with Daemons version 1.0.10)。但是,您可能会遇到以下问题:

  • 我发现正在使用/的当前工作目录启动守护进程(daemon.rb)。这不是运行mycontrol.rb时的当前目录或包含daemon.rb的目录。以非root用户身份运行意味着我的进程没有写入文件的权限。我将文件名更改为/tmp/file.out,并使用预期的内容创建了该文件。
  • 您正在以只写('w')模式打开file.out。这意味着它将被截断并每3秒重写一次。如果您以追加('a')模式打开文件,您将看到每隔3秒就会有一个额外的hello everybody行写入文件。

我也看不到“现在在后台运行”的消息。我假设这包含在文档中是为了说明应该发生什么,而不是指示输出。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1758923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档