Ruby Process.daemon:打开/关闭
问题描述:
我正在尝试在2.1.1上运行的Ruby脚本进行守护程序。Ruby Process.daemon:打开/关闭
我的代码的一部分守护程序是这样的:
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/
这的确是一个艰难的过程。幸运的是,我使用的是TweetStream gem,它有一个内置的守护进程工具。 – 2014-10-08 14:05:27