[Ruby] daemons in ruby
vic ismakaev
viclists at mail.esoo.ru
Wed Feb 5 08:44:40 MSK 2003
5 Февраль 2003 09:54, Ilya Palagin написал:
> vic ismakaev wrote:
> > 5 Февраль 2003 07:58, Ilya Palagin написал:
> >>Sergei Dolmatov wrote:
> >>>On Tue, Feb 04, 2003 at 02:31:55PM +0500, vic ismakaev wrote:
> >>>>Приветствую!
> >>>>А не подскажет ли мне кто: есть в природе дока/хавтушка по написанию
> >>>>демонов/tcp-серверов на Ruby?
> >>
> >>См. The Pragmatic Programmer's Guide, Network and Web Libraries.
> >
> > К сожалению, пр демонов там ничего нет :(
>
> Зато про серверы и сокеты есть. Берем скрипт и запускаем его в фоновом
> режиме, заставляя реагировать на kill.
Да, работа с сокетам там описана неплохо(для меня,начинающего)
>
> Нашел такой вот пример:
Я тоже его видел. Но в него можно наверное внести несколько
дополнений:,добавить setsid и после него второй fork.
> From: Amos (amos+lists.ruby-talk at utdallas.edu)
> Subject: Re: daemon ruby script
> View this article only
> Newsgroups: comp.lang.ruby
> Date: 2001-05-02 06:50:14 PST
> ...
> ##
> ## Become a daemon!
> ##
> def go_daemon
> unless Process.uid == 0
> $stderr.puts "#{$0} must be run as root!"
> exit!
> end
>
> Dir.chdir PrayConfig.wrkdr
> File.umask 077
> trap "SIGCLD", "IGNORE"
>
> if $DEBUG
> $stderr.puts "DEBUG enabled, running in foreground"
> else
> ## close unneeded descriptors
> $stdin.close
> $stdout.close
> $stderr.close
>
> ## drop into the background.
> pid = fork
> if pid
> ## parent: save pid of child, then exit
> File.open(PrayConfig.pidfl, "w") do |file|
> file.puts pid
> end
> exit!
> end
>
> ## change process group and lose control tty
> Process.setpgrp
> end
>
> ## Run at higher priority so that runaways won't get away, but try
> ## not to directly compete with sched, pageout, and fsflush.
> Process.setpriority Process::PRIO_PROCESS, Process.pid, -10
>
> ## Initialize syslog
> $thishost = Socket.gethostbyname(Socket.gethostname)[0]
> $sl = Syslog.new 'pray', Syslog::LOG_PID|Syslog::LOG_CONS,
> Syslog::LOG_DAEMON
> end
>
> ##
> ## "MAIN"
> ##
> go_daemon
>
> _______________________________________________
> Ruby mailing list
> Ruby at altlinux.ru
> http://www.altlinux.ru/mailman/listinfo/ruby
--
С уважением
Виктор В Исмакаев
More information about the Ruby
mailing list