domingo, 28 de diciembre de 2008

Crear demonios en ruby

Para crear un demonio hay que duplicar el proceso actual (hacer un fork) y distinguir a cada una de las instancias para la que instancia hija se encargue del trabajo en background que queremos realizar.

En ruby todo este proceso se puede realizar automáticamente utilizando el módulo ruby daemon de la siguiente forma.

require 'daemons'

class Demonio
def initialize
Daemons.daemonize
loop do
f = File.new('/tmp/timestamp', 'a')
f.write("#{Time.now}\n")
f.close
sleep(3)
end
end
end

Demonio.new

3 comentarios:

Unknown dijo...

Sobra un 'que' en la redaccion.

Se aprende mucho por aquí. Por cierto la url de mi blog ha cambiado y es kikorb.blogspot.com

ang dijo...

hola, tengo una duda y quizas tu me puedas guiar, quisiera crear un "ejecutable" de ruby...no un.exe sino un proceso que pueda invocar desde la terminal de linux junto a un argumento, algo asi como rails, que ejecuto con rails "argumento" o sinatra, shoes, etc...existe una manera de hacer esto desde el mismo script (creo que podria hacerlo desde linux creando un enlace simbolico pero no es la idea), espero que me puedas entender y me puedas indicar...gracias

javiyu dijo...

Carlos, para eso lo único que tienes que hacer es quitarle la extensión al fichero

mv fichero.rb fichero

Añadir a la primera línea de tu programa en ruby lo siugiente

#!/usr/bin/env ruby

y luego darle permisos de ejecución

chmod a+x fichero