【问题标题】:Ruby Process.daemon: turning on/offRuby Process.daemon:打开/关闭
【发布时间】:2014-11-30 07:22:34
【问题描述】:

我正在尝试对运行在 2.1.1 上的 Ruby 脚本进行守护。

我的守护进程部分代码是这样的:

case ARGV[0]
when "-start"
  puts "TweetSearcher started."
  Process.daemon
when "-stop"
  Process.kill(9,Process.pid) 
else
  puts "Lacks arguments. Use -start/-stop"
  abort
end

但是,Process.kill(9,Process.pid) 似乎并没有杀死我想要的东西。我想杀死之前已经在后台运行的“ruby tweetsearcher.rb -start”。

我该如何进行?

【问题讨论】:

    标签: ruby daemon ruby-2.1 ruby-daemons


    【解决方案1】:

    通常,PID 存储在一个文件中,然后读取该文件以停止它。

    调用Process.kill(9,Process.pid) 会杀死“停止”进程本身,而不是它试图停止的进程。

    这里是使用 Ruby 编写守护进程的指南:http://codeincomplete.com/posts/2014/9/15/ruby_daemons/

    如您所见,这不是一个简单的过程。

    这是另一个博客,建议您根本不应该尝试守护进程,而应该依靠进程监控系统来处理这些问题:https://www.mikeperham.com/2014/09/22/dont-daemonize-your-daemons/

    【讨论】:

    • 这真是一个艰难的过程。幸运的是,我使用的是 TweetStream gem,它有一个内置的守护程序工具。
    猜你喜欢
    • 2011-01-12
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多