我目前正在开发一个提供可执行文件的 RubyGem。可执行文件使用 FSSM gem 跟踪一些日志文件的状态。
这个可执行文件应该开始,在后台做一些事情,然后停止。
例如:
$ my_executable start
# do something different...
$ my_executable stop
我会首先在 start 方法中启动一个新进程,它会执行文件监视。但我不知道如何解决这个过程来阻止它。
提供这种行为的最佳方式是什么?
问候
我目前正在开发一个提供可执行文件的 RubyGem。可执行文件使用 FSSM gem 跟踪一些日志文件的状态。
这个可执行文件应该开始,在后台做一些事情,然后停止。
例如:
$ my_executable start
# do something different...
$ my_executable stop
我会首先在 start 方法中启动一个新进程,它会执行文件监视。但我不知道如何解决这个过程来阻止它。
提供这种行为的最佳方式是什么?
问候
pid = Process.fork{exec 'gcalctool'} #don't use 'system' or `executable`
1.upto(10) do |n|
puts "counting #{n}"
STDOUT.flush
sleep 1
end
Process.kill( 'HUP', pid )
有一个守护进程库可以帮助你守护你的 ruby 脚本。它被杂种使用。
ruby-toolbox上还描述了一些其他有用的 gem 。