Я хочу создать демон программы ruby в Linux.
Я также хочу, чтобы демон был интерактивным - я хочу иметь возможность отправлять входные данные демону через файл / pipe / самый простойметод и получить вывод в файл.
Как мне это сделать?
Я изучил демоны модуля (потоки http://daemons.rubyforge.org/), и метод popen3, но мне трудно заставить их выполнитьвыше.
ОТВЕТ: Метод Младена:
У меня есть контроллер, который создает демона: (вам понадобится гем модуля демонов)
require 'rubygems'
require 'daemons'
Daemons.run('/myDaemon.rb', {:app_name => "o", :dir_mode => :normal, :dir => '', :log_output => true, :multiple => true })
Вот myDaemon.rb:
puts `pwd`
File.open('my_pipe', 'r+') do |f|
loop do
line = f.gets
puts "Got: #{line}"
end
end
Шаги: Оба файла находятся в моем корневом каталоге \. Daemons.run создает демон в \.
Создайте именованный канал, mkfifo./my_pipe.
ruby controller.rb start
cat> my_pipe
введите текст
ctrl-c для остановки ввода
cat o.output, чтобы увидеть ваш вывод