]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - html/cgi-bin/services.cgi
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next-suricata
[ipfire-2.x.git] / html / cgi-bin / services.cgi
index 424ca868f15161e1694d55217032080ddbc99ace..64fdbba05a4ee6afcaceae2caa1dbee12f485782 100644 (file)
@@ -49,12 +49,12 @@ my %servicenames =(
        $Lang::tr{'dhcp server'} => 'dhcpd',
        $Lang::tr{'web server'} => 'httpd',
        $Lang::tr{'cron server'} => 'fcron',
-       $Lang::tr{'dns proxy server'} => 'dnsmasq',
+       $Lang::tr{'dns proxy server'} => 'unbound',
        $Lang::tr{'logging server'} => 'syslogd',
        $Lang::tr{'kernel logging server'} => 'klogd',
        $Lang::tr{'ntp server'} => 'ntpd',
        $Lang::tr{'secure shell server'} => 'sshd',
-       $Lang::tr{'vpn'} => 'pluto',
+       $Lang::tr{'vpn'} => 'charon',
        $Lang::tr{'web proxy'} => 'squid',
        'OpenVPN' => 'openvpn'
 );
@@ -116,25 +116,33 @@ if ( $querry[0] =~ "processescpu"){
        &Header::openbox('100%', 'left', $Lang::tr{'services'});
        print <<END
 <div align='center'>
-<table width='80%' cellspacing='1' border='0'>
-<tr bgcolor='$color{'color20'}'><td align='left'><b>$Lang::tr{'services'}</b></td><td align='center' ><b>$Lang::tr{'status'}</b></td><td align='center'><b>PID</b></td><td align='center'><b>$Lang::tr{'memory'}</b></td></tr>
+<table width='80%' cellspacing='1' class='tbl'>
+<tr>
+       <th align='left'><b>$Lang::tr{'services'}</b></th>
+       <th align='center' ><b>$Lang::tr{'status'}</b></th>
+       <th align='center'><b>PID</b></th>
+       <th align='center'><b>$Lang::tr{'memory'}</b></th>
+</tr>
 END
 ;
        my $key = '';
+       my $col="";
        foreach $key (sort keys %servicenames){
                $lines++;
                if ($lines % 2){
-                       print "<tr bgcolor='$color{'color22'}'>\n<td align='left'>";
-                       print %link->{$key};
-                       print "</td>\n";
+                       $col="bgcolor='$color{'color22'}'";
+                       print "<tr><td align='left' $col>";
+                       print $link{$key};
+                       print "</td>";
                }else{
-                       print "<tr bgcolor='$color{'color20'}'>\n<td align='left'>";
-                       print %link->{$key};
-                       print "</td>\n";
+                       $col="bgcolor='$color{'color20'}'";
+                       print "<tr><td align='left' $col>";
+                       print $link{$key};
+                       print "</td>";
                }
 
                my $shortname = $servicenames{$key};
-               my $status = &isrunning($shortname);
+               my $status = &isrunning($shortname,$col);
 
                print "$status\n";
                print "</tr>\n";
@@ -152,14 +160,14 @@ END
 
        print <<END
 <div align='center'>
-<table width='80%' cellspacing='1' border='0'>
-<tr bgcolor='$color{'color20'}'>
-<td align='center'><b>Addon</b></td>
-<td align='center'><b>Boot</b></td>
-<td align='center' colspan=2><b>$Lang::tr{'action'}</b></td>
-<td align='center'><b>$Lang::tr{'status'}</b></td>
-<td align='center'><b>PID</b></td>
-<td align='center'><b>$Lang::tr{'memory'}</b></td>
+<table width='80%' cellspacing='1' class='tbl'>
+<tr>
+       <th align='center'><b>Addon</b></th>
+       <th align='center'><b>Boot</b></th>
+       <th align='center' colspan=2><b>$Lang::tr{'action'}</b></th>
+       <th align='center'><b>$Lang::tr{'status'}</b></th>
+       <th align='center'><b>PID</b></th>
+       <th align='center'><b>$Lang::tr{'memory'}</b></th>
 </tr>
 END
 ;
@@ -177,21 +185,27 @@ END
                        # blacklist some packages
                        #
                        # alsa has trouble with the volume saving and was not really stopped
+                       # mdadm should not stopped with webif because this could crash the system
                        #
                        chomp($_);
-                       if ($_ ne "alsa"){
+                       if ( $_ eq 'squid' ) {
+                               next;
+                       }
+                       if ( ($_ ne "alsa") && ($_ ne "mdadm") ) {
                                $lines++;
                                if ($lines % 2){
-                                       print "<tr bgcolor='$color{'color22'}'>";
+                                       print "<tr>";
+                                       $col="bgcolor='$color{'color22'}'";
                                }else{
-                                       print "<tr bgcolor='$color{'color20'}'>";
+                                       print "<tr>";
+                                       $col="bgcolor='$color{'color20'}'";
                                }
-                               print "<td align='left'>$_</td> ";
-                               my $status = isautorun($_);
+                               print "<td align='left' $col width='31%'>$_</td> ";
+                               my $status = isautorun($_,$col);
                                print "$status ";
-                               print "<td align='center'><A HREF=services.cgi?$_!start><img alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' border='0' /></A></td>";
-                               print "<td align='center'><A HREF=services.cgi?$_!stop><img alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' border='0' /></A></td> ";
-                               my $status = &isrunningaddon($_);
+                               print "<td align='center' $col width='8%'><a href='services.cgi?$_!start'><img alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' border='0' /></a></td>";
+                               print "<td align='center' $col width='8%'><a href='services.cgi?$_!stop'><img alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' border='0' /></a></td> ";
+                               my $status = &isrunningaddon($_,$col);
                                $status =~ s/\\e\[[0-1]\;[0-9]+m//g;
 
                                chomp($status);
@@ -218,16 +232,17 @@ END
 
 sub isautorun{
        my $cmd = $_[0];
-       my $status = "<td align='center'></td>";
+       my $col = $_[1];
+       my $status = "<td align='center' $col></td>";
        my $init = `find /etc/rc.d/rc3.d/S??${cmd} 2>/dev/null`;
        chomp ($init);
        if ($init ne ''){
-               $status = "<td align='center'><A HREF=services.cgi?$_!disable><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></A></td>";
+               $status = "<td align='center' $col><a href='services.cgi?$_!disable'><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></a></td>";
        }
        $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`;
        chomp ($init);
        if ($init ne ''){
-               $status = "<td align='center'><A HREF=services.cgi?$_!enable><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></A></td>";
+               $status = "<td align='center' $col><a href='services.cgi?$_!enable'><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></a></td>";
        }
 
        return $status;
@@ -235,11 +250,12 @@ sub isautorun{
 
 sub isrunning{
        my $cmd = $_[0];
-       my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>";
+       my $col = $_[1];
+       my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>";
        my $pid = '';
        my $testcmd = '';
        my $exename;
-       my @memory;
+       my $memory;
 
        $cmd =~ /(^[a-z]+)/;
        $exename = $1;
@@ -255,13 +271,18 @@ sub isrunning{
                        }
                        close FILE;
                }
-               if (open(FILE, "/proc/${pid}/statm")){
-                               my $temp = <FILE>;
-                               @memory = split(/ /,$temp);
+               if (open(FILE, "/proc/${pid}/status")) {
+                       while (<FILE>) {
+                               my ($key, $val) = split(":", $_, 2);
+                               if ($key eq 'VmRSS') {
+                                       $memory = $val;
+                                       last;
+                               }
+                       }
+                       close(FILE);
                }
-               close FILE;
                if ($testcmd =~ /$exename/){
-                       $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td><td align='center'>$pid</td><td align='center'>$memory[0] KB</td>";
+                       $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td><td align='center' $col>$pid</td><td align='center' $col>$memory</td>";
                }
        }
        return $status;
@@ -269,7 +290,8 @@ sub isrunning{
 
 sub isrunningaddon{
        my $cmd = $_[0];
-       my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>";
+       my $col = $_[1];
+       my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>";
        my $pid = '';
        my $testcmd = '';
        my $exename;
@@ -279,6 +301,7 @@ sub isrunningaddon{
 
        if ( $testcmd =~ /is\ running/ && $testcmd !~ /is\ not\ running/){
                $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>";
+               $testcmd =~ s/.* //gi;
                $testcmd =~ s/[a-z_]//gi;
                $testcmd =~ s/\[[0-1]\;[0-9]+//gi;
                $testcmd =~ s/[\(\)\.]//gi;
@@ -286,7 +309,7 @@ sub isrunningaddon{
                $testcmd =~ s/\e//gi;
 
                my @pid = split(/\s/,$testcmd);
-               $status .="<td align='center'>$pid[0]</td>";
+               $status .="<td align='center' $col>$pid[0]</td>";
 
                my $memory = 0;
 
@@ -298,9 +321,9 @@ sub isrunningaddon{
                        }
                        $memory+=$memory[0];
                }
-               $status .="<td align='center'>$memory KB</td>";
+               $status .="<td align='center' $col>$memory KB</td>";
        }else{
-               $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2'></td>";
+               $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>";
        }
        return $status;
 }