[Linux-programlama] CGI'da program calistirma sorunu

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Orhan Sumer (sumero@sumero.com)
Date: Wed 12 Jul 2006 - 10:58:28 GMT


Selamlar,

Asagidaki gibi bir cgi script yazdim, amac bu cgi script cagirildiginda
"calistirilacak_program.pl" ismili programin o anda sistemde calisip
calismayacagina bakacak eger calisiyorsa kill edip yeniden baslatacak ve
programdan cikacak yok eger calismiyorsa sadece baslatacak.
script yukaridakileri yapiyor. O zaman sorun ne diyeceksiniz,
Sorun script calistirildiginda hangi browser'dan olursa olsun hic durmadan
devam ediyor. Yalnis anlasilma olmasin sonsuz donguya girmiyor, browser
sayfa'daki islemin bitmedigini dusunuyor ve oyle kaliyor (mozillanin toplari
donuyor, ie'nin penceresi sallaniyor). Ama bu arada ben eger sistem bakarsam
program duzgun bir sekilde kapatildigini ve baslatildigini gorebiliyorum.
Islem bittiginde print_info'nun gelmesi gerekiyor ama o kisma gelmiyor. On
onbes dakika bekledikten sonra browser timeout'a dusuyor.

Kodlar asagidaki acikcasi yorumlarinizi bekliyorum, program calisitigi halde
neden bu sekilde davraniyor kesinlikle anlayamadim.

#!/usr/local/bin/perl

use CGI;
use strict;
my $q = new CGI;

$|=1;
     restart_mod();

############################
sub restart_mod{
  my $output;
  my @Koutput = `ps -wef| grep calistirilacak_program.pl | grep -v grep`;
  #my $output = system("ps","-wef");
  foreach $output (@Koutput){
        print "<br>cikti:<br>".$output;

  if ($output =~ /ITS_ON_TEST_DONT_KILL_IT_oS/){
        print "<br>stopstart dongusune girdi.";
        my $restarter = `/bin/kill \`cat /var/run/channelsXX.pid\``;# &&
./calistirilacak_program.pl &`;
        print "<BR>program durduruldu.";
        my $restarter2 = `./calistirilacak_program.pl &` and warn "<br>???";
        print_info();
        exit();
     }
  }
     print "<br>start dongusune girdi";
     my @only_starter = `./calistirilacak_program.pl &` and die;
# my @only_starter = `./start`;
     print_info();
     die;
}

sub print_info{
  print <<'END_HTML';
  <BR><BR>channels programi yeniden baslatildi.<BR>
END_HTML

}

Orhan Sumer


_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.