Запустите демон в простом приложении на железной дороге

У меня есть простой контроллер, и я хочу, чтобы этот контроллер запускал демон для выполнения фоновой работы (он считывал данные sstdin, передаваемые платой Arduino, подключенной к компьютеру).

class DaemonController < ApplicationController
  def index
    require 'rubygems'
    require 'daemons'

    options = {
      :app_name => "collectTemperature",
      :multiple => true
    }
    readtty = Daemons.call(options) do
    loop {
      sleep 10
    }
    end
  end # def                                                                      
end # class       

Он действительно создает процесс (с этого момента он просто спит, но я займусь этим, как только этот простой код сработает), но когда я вызываю контроллер через рамку rails в браузере, я получаю сообщение об ошибке в указателе браузера на строку вызова Демона (строка 14).

SystemExit in DaemonController#index

daemons (1.1.9) lib/daemons/daemonize.rb:65:in `exit'
daemons (1.1.9) lib/daemons/daemonize.rb:65:in `call_as_daemon'
daemons (1.1.9) lib/daemons/application.rb:259:in `start_proc'
daemons (1.1.9) lib/daemons/application.rb:296:in `start'
daemons (1.1.9) lib/daemons.rb:252:in `call'
app/controllers/daemon_controller.rb:14:in `index'

Я был бы очень признателен за любую помощь, и мне очень жаль, если это глупый вопрос;-)

1 ответ

Решение

Daemons.call(options) begin скорее, чем Daemons.call(options) do

Другие вопросы по тегам