Ruby Process.daemon:打开/关闭



我正在尝试守护一个运行在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"。

如何继续?

通常,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/

相关内容

  • 没有找到相关文章

最新更新