Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : dr@citynet.kz                        2:5083/21.21   08 Jun 2001  09:46:56
 To : All
 Subject : демон
 -------------------------------------------------------------------------------- 
 
 .RFC-Distribution: fido
 .RFC-Message-ID: <9fphrg$ofo$1@dr.citynet.kz>
 .RFC-NNTP-Posting-Host: localhost
 .RFC-X-Trace: dr.citynet.kz 991972016 25080 127.0.0.1 (8 Jun 2001 03:46:56 GMT)
 .RFC-X-Complaints-To: news@dr.citynet.kz
 .RFC-NNTP-Posting-Date: 8 Jun 2001 03:46:56 GMT
 Reply-To: dr@citynet.kz
 
 господа, подскажите почему сей кусочек кода работает неккоректно (не
 пишется лог-файл), либо отправьте куда-нибуль читать про написание
 демонов.
 
 ################################################################################
 ######
 #!/usr/bin/perl
 
 use POSIX qw(setsid);
 
 sub daemon_init;
 sub sig_handler;
 sub get_time;
 
 $logfile = '>/var/log/billingd.log';
 
 ################################
 # Main program code starts here
 #
 
 daemon_init();
 
 open (LOGFILE, $logfile) || die "Error opening $logile! $!\n";
 ($date, $time) = get_time(time);
 #print "$date $time\n";
 print LOGFILE "$date $time billingd sucessfully started\n";
 until ($time_to_die) {
  sleep(1);
  print LOGFILE "running!\n";
 }
 print LOGFILE "$date $time billingd killed\n"; 
 close (LOGFILE) || die "Error closing $logfile! $!\n";
 
 sub daemon_init
 {
  # fork and wait for parent exit
  $pid = fork;
  exit if $pid;
  die "Fork error! $!" unless defined($pid);
  # dissociate from the controlling terminal
  setsid();
  # set signal handler
  $SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&sig_handler;
 }
 
 sub sig_handler 
 {
  $time_to_die = 1;
 }
 
 sub get_time
 {
  (my $sec,my $min,my $hour,my $mday, my $mon,my $year,my $wday,my $yday,my
 $isdst) = localtime($_[0]);
  $year += 1900; $mon += 1;
   $sec = "0$sec" if (length($sec) < 2); $min = "0$min" if (length($min) < 2);
 $hour = "0$hour" if (length($hour) < 2);
   $mday = "0$mday" if (length($mday) < 2); $mon = "0$mon" if (length($month) <
 2); $year = "0$year" if (length($year) < 2);
  return "$year-$mon-$mday", "$hour:$min:$sec";
 }
 ################################################################################
 #######
 
 зыж может кто-нибудь поможет чуть-чуть подправить get_time, чтоб оно
 выглядело более элегантно. чувствую, что можно сделеть на регекспах, но
 не знаю как реализовать условие 'меньше чем'
 
 -- 
 ... WBR, Roman Hlynovski (dr@citynet.kz)
 --- tin/1.5.8-20010221 ("Blue Water") (UNIX) (Linux/2.4.5 (i686))
  * Origin: A poorly-installed InterNetNews site (2:5083/21.21@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 демон   dr@citynet.kz   08 Jun 2001 09:46:56 
 демон   Dmitry Diskin   08 Jun 2001 20:42:19 
Архивное /ru.perl/795221dc2ddd.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional