首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Daemons gem获取第一个任务的pid?

如何使用Daemons gem获取第一个任务的pid?
EN

Stack Overflow用户
提问于 2012-06-22 06:54:58
回答 1查看 610关注 0票数 2

我正在尝试使用Daemons gem运行同一代码/脚本的多个实例。我一直在IRB会话中使用它,似乎无法获得我想要的功能。我想多次运行同一个脚本,跟踪PID,这样我就可以手动启动和停止进程。更具体地说,我有一个rails模型,它的实例将控制单个进程,因此我需要使用如下命令启动和停止它

代码语言:javascript
复制
mydaemon = MyDaemon.create
mydaemon.start # starts the process
mydaemon.stop  # stops the process

但是,为了实现这样的功能,我想将进程的PID存储在活动记录中。当我在IRB中运行以下代码时:

代码语言:javascript
复制
require 'rubygems'        # if you use RubyGems
require 'daemons'

task1 = Daemons.call(:multiple => true) do
  loop {
    File.open("/tmp/daemon_test.log", "w") {|f| f.write(Time.now.to_s + "\n")}
    sleep 5
  }
end

任务自动启动(不调用task1上的start ),它返回与task1关联的Daemons::Application对象,而不是返回pid。我只有在启动task1的第二个实例时才能访问pid,即:

代码语言:javascript
复制
task1.start
 => 574 # PID of process but now I have 2 proc's running, one of which I don't know the PID of

我是不是用错了守护进程?或者没有办法获得调用Daemons.call时自动启动的第一个进程的PID?

谢谢,Tomek

EN

回答 1

Stack Overflow用户

发布于 2012-06-22 07:39:40

Daemons::Application对象具有返回Daemons::Pid对象的公共属性piddocs say,因此请尝试使用该task1.pid.pid

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

https://stackoverflow.com/questions/11147987

复制
相关文章

相似问题

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