Ciao raga,
sto cercando qualche lib per implementare dei demoni in ruby (con
start/stop/status/pid etc) e ho visto che ci sono varie librerie:
daemons,
daemonize etc… Non è che qualcuno di voi ha esperienza in merito e sa
consigliarmi la migliore? Io chiedo, non si sa mai…
Anch’io lo vorrei sapere… per ora ho fatto con cron e funziona bene,
ma un socket server sarebbe assai bello.
E se fosse questo il progetto della giornata? Hmmm. Se ti va potremmo
indagare insieme.
Paolo Donà wrote:
Ciao raga,
sto cercando qualche lib per implementare dei demoni in ruby (con
start/stop/status/pid etc) e ho visto che ci sono varie librerie:
daemons,
daemonize etc... Non è che qualcuno di voi ha esperienza in merito
e sa
consigliarmi la migliore? Io chiedo, non si sa mai...
provo a fare partire il mio gtalkerence.rb (il famoso mini-bot per
Gtalk)
come demone e ridirigo stdout in log.txt:
$ dctl start -olog.txt gtalkerence.rb
E:\prj\GTalkerence>dctl start -olog.txt gtalkerence.rb
c:/ruby/lib/ruby/site_ruby/1.8/dctl/command.rb:17: uninitialized
constant
Dctl::Command::CommandParser(NameError)
from
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
from c:/ruby/lib/ruby/site_ruby/1.8/dctl/cmdparser.rb:10
from c:/ruby/lib/ruby/site_ruby/1.8/dctl.rb:3
from c:/ruby/bin/dctl:4
Wow, non male come inizio… Potete provare anche voi e dirmi che vi
succede? io sto avendo qualche problema con i gem ultimamente e non
vorrei
che fosse il mio ambiente marcio (con alcuni di essi se non lacio a mano
il
setup.rb non funzionano! ho provato ovviamente anche con questo ma
nisba…)
Il giorno ven, 17/11/2006 alle 02.50 +0100, Paolo Donà ha scritto:
Ciao raga,
sto cercando qualche lib per implementare dei demoni in ruby (con
start/stop/status/pid etc) e ho visto che ci sono varie librerie: daemons,
daemonize etc… Non è che qualcuno di voi ha esperienza in merito e sa
consigliarmi la migliore? Io chiedo, non si sa mai…
Direi che la cosa migliore, se sei su un ambiente Linux, sono i
daemon-tools.
Il problema che ho (anzi avrei, visto che non funziona) sia con dctl che
daemontools è che non posso mettere hookup nel codice per fare qualcosa
allo
stop etc…tipo chiudere delle connessioni o cancellare file
temporanei.Oforse semplicemente non so come si fa? daemontools o chi
per esso richiama
dei callback in ruby che io conosco? Questo è il motivo per cui volevo
fare
i demoni in Ruby.
Hmm. Ora provo io. Forse potremmo metterci d’accordo per uno script
minimale da eseguire come demone? Per escludere che eventuali
problemi
derivino da quello…
Cmq, sono appena arrivato in uffico ora. Faccio qualche giro in rete
e
poi ho una riunione fuori alle undici, dopodiché ci torno
sù. Idealmente vorrei poter usare CommandLine (“gem install commandline”)
per le opzioni/args, ma non so quanto bene collabori con i
demonizzatori…
Paolo Donà wrote:
ok, allora la mia prima prova è con dctl
[1]<http://dctl.rubyforge.org/>:
lo installo:
$ gem install dctl --include-dependencies
provo a fare partire il mio gtalkerence.rb (il famoso mini-bot per
Gtalk)
come demone e ridirigo stdout in log.txt:
$ dctl start -olog.txt gtalkerence.rb
E:\prj\GTalkerence>dctl start -olog.txt gtalkerence.rb
c:/ruby/lib/ruby/site_ruby/1.8/dctl/command.rb:17: uninitialized
constant
Dctl::Command::CommandParser(NameError)
from
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require'
from c:/ruby/lib/ruby/site_ruby/1.8/dctl/cmdparser.rb:10
from c:/ruby/lib/ruby/site_ruby/1.8/dctl.rb:3
from c:/ruby/bin/dctl:4
Wow, non male come inizio... Potete provare anche voi e dirmi che
vi
succede? io sto avendo qualche problema con i gem ultimamente e non
vorrei
che fosse il mio ambiente marcio (con alcuni di essi se non lacio a
mano il
setup.rb non funzionano! ho provato ovviamente anche con questo ma
nisba...)
Paolo
On 11/17/06, david [2]<[email protected]> wrote:
Anch'io lo vorrei sapere... per ora ho fatto con cron e funziona
bene,
ma un socket server sarebbe assai bello.
E se fosse questo il progetto della giornata? Hmmm. Se ti va
potremmo
indagare insieme.
Paolo Donà wrote:
Ciao raga,
sto cercando qualche lib per implementare dei demoni in ruby
(con
start/stop/status/pid etc) e ho visto che ci sono varie
librerie:
daemons,
daemonize etc... Non è che qualcuno di voi ha esperienza in
merito
e sa
consigliarmi la migliore? Io chiedo, non si sa mai...
--
"Remember, always be yourself. Unless you suck." - Joss Whedon
_______________________________________________
Ml mailing list
[3][email protected]
[4]http://lists.ruby-it.org/mailman/listinfo/ml
–
“Remember, always be yourself. Unless you suck.” - Joss Whedon
Il problema che ho (anzi avrei, visto che non funziona) sia con
dctl che
daemontools è che non posso mettere hookup nel codice per fare
qualcosa allo
stop etc…tipo chiudere delle connessioni o cancellare file
temporanei.
Eccomeno? Intercettare i segnali in Ruby e’ banalerrimo:
trap(‘USR1’) do
fai qualcosa!
end
con i daemontools, una volta che il tuo script e’ sotto supervise, lo
controlli con “svc” per
stopparlo, riavviarlo o mandargli un segnale custom.
ciao,
io ho avuto discreto successo (i.e. è stato molto semplice da far
funzionare) con DRb (e’ stato l’estate scorsa e non ho provato le
ultime versioni).
btw DRb credo si basi su demonize
Non sono pratico di questi argomenti dal punto di vista ruby ma dal
punto di vista del sistemista.
Winzozz non ha i signal (che sono classici dei sistemi Posix), per
ovviare a questo inconveniente potresti lavorare in ambiente cygwin
che ricrea un Posix sotto Win.
Visto che sei ferrato ti sfrutto un pochino
Funziona anche sotto windows?
Quali sono i nomi dei segnali da trappare per start/stop/status ?
Giusto per informazione, in ambiente Windows io utilizzo win32-service http://raa.ruby-lang.org/project/win32-service/ (c’è già il pacchetto
gem
binario) che permette di implementare in maniera estremamente rapida dei
veri e propri servizi win32 scritti in Ruby. Funziona, lo uso
tranquillamente in azienda su alcuni server Windows 2003 sui quali ho
installato dei servizi (scritti in ruby, appunto) che mi gestiscono un
pò
di cosette delle nostre applicazioni e che sinceramente non avevo per
niente
voglia di scrivere in C#
Sulla mailing list delle win32-utils qualcuno aveva annunciato un
progettino
chiamato PortableDaemon che mirava a unificare win32-service e daemons
sotto
un’unica interfaccia, creando un wapper di queste due librerie per
permettere agli sviluppatori di scrivere servizi/demoni portabili su
windows
o su *nix… penso che sarebbe perfetto per te, purtroppo però non so
che
fine abbia fatto questo progetto dato che non ci sono più notizie in
merito
per quel che ne so.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.