Какой лучший способ запустить фоновый процесс, к которому можно получить доступ позже - PullRequest
3 голосов
/ 26 августа 2010

В настоящее время я разрабатываю RubyGem, который предоставляет исполняемый файл. Исполняемый файл отслеживает состояние некоторых файлов журнала, используя гем FSSM.

Этот исполняемый файл должен начать работу, сделать что-то в фоновом режиме и быть остановленным позже.

Например:

$ my_executable start
# do something different...
$ my_executable stop

Я бы сначала запустил новый процесс, который выполняет просмотр файлов внутри старта. метод. Но я не знаю, как решить этот процесс, чтобы остановить его.

Какой лучший способ обеспечить такое поведение?

С уважением

Ответы [ 2 ]

4 голосов
/ 27 августа 2010
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 )
0 голосов
/ 26 августа 2010

Существует библиотека daemons , которая поможет вам демонизировать ваш скрипт ruby. Используется дворнягой.

Также есть несколько других полезных камней, описанных на ruby-toolbox .

...