Ruby скрипт как сервис - PullRequest
8 голосов
/ 15 марта 2010

Ну, в названии все сказано. У меня есть скрипт ruby, который я хочу запустить как службу (которую я могу запускать и останавливать) на моем компьютере с Linux. Я смог найти, как это сделать на Windows здесь

Некоторые чтения указывают на создание демонов или задач cron.

Мне просто нужно что-то простое, я могу вызвать перезагрузку своего ящика и могу остановиться / начать, когда захочу. мой скрипт имеет внутренний вызов сна и работает в "вечном цикле"

заранее спасибо

Ответы [ 3 ]

14 голосов
/ 21 марта 2010

На самом деле я нашел гораздо лучший способ сделать это, используя сценарии ruby.

Вот как я это сделал:

Прежде всего я установил демон

gem install daemons

Тогда я сделал:

require 'rubygems'
require 'daemons'

pwd  = File.dirname(File.expand_path(__FILE__))
file = pwd + '/runner.rb'

Daemons.run_proc(
   'my_project', # name of daemon
   :log_output => true
 ) do
   exec "ruby #{file}"
end

Затем я создаю файл с именем runner.rb, в котором я могу вызывать свои скрипты, такие как:

require "/var/www/rails/my_project/config/environment"
Post.send('details....')

Демоны - великий драгоценный камень!

3 голосов
/ 15 марта 2010

RAA - deamons - очень полезный инструмент для создания демонов Unix из сценариев ruby.

0 голосов
/ 14 августа 2014

Начиная с 1.9.x рубин имеет встроенную функцию:

Process.daemon

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...