Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37536276
en ru br
ALT Linux repos
S:4.1.0.3-alt3

Group :: System/Servers
RPM: x2goserver

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: x2gocleansessions.diff
Download


--- x2goserver-2.0.1.orig/x2gocleansessions
+++ x2goserver-2.0.1/x2gocleansessions
@@ -34,11 +34,38 @@
 }
 
 
+sub catch_term
+{
+   unlink("/var/run/x2goserver.pid");
+   exit;
+}
+
 my $uname;
 my $serv=$ENV{'HOSTNAME'};
 
-while(sleep 5)
+my $pid = fork();
+if (not defined $pid) 
+{
+  print "resources not avilable.\n";
+} 
+elsif ($pid != 0) 
 {
+    open (F,">/var/run/x2goserver.pid");
+    print F "$pid\n";
+    close(F);
+}
+elsif ($pid == 0 )
+{
+
+ close(STDIN);
+ close(STDOUT);
+ close(STDERR);
+ 
+ $SIG{TERM}=\&catch_term;
+ 
+ while(sleep 5)
+ {
+  $serv=`hostname`;
   my $outp=`x2golistsessions_sql $serv 2>/dev/null`;
 
   my @outp=split("\n","$outp");
@@ -48,16 +75,16 @@
      my @sinfo=split('\\|',"@outp[$i]");
      if(@sinfo[4]eq 'F')
      {
-	 print "@sinfo[1], is blocked\n";
-	 print "(@sinfo[1])Unmounting all shares\n";	        
-	 system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount_session @sinfo[1]\"");
+	 #print "@sinfo[1], is blocked\n";
+	 #print "(@sinfo[1])Unmounting all shares\n";	        
+	 system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount_session @sinfo[1]\" 2> /dev/null");
      }       
      elsif(! check_pid (@sinfo[0],@sinfo[1],@sinfo[12]))
      {
          system("su @sinfo[11] -c \"sudo x2gopgwrapper changestatus 'F' @sinfo[1] \" > /dev/null");
-	 print "@sinfo[1], pid @sinfo[0] not exist, changing status from @sinfo[4] to F\n";
-	 print "(@sinfo[1])Unmounting all shares\n";	 
-	 system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount_session @sinfo[1]\"");
+	 #print "@sinfo[1], pid @sinfo[0] not exist, changing status from @sinfo[4] to F\n";
+	 #print "(@sinfo[1])Unmounting all shares\n";	 
+	 system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount_session @sinfo[1]\" 2> /dev/null");
      }
      else
      { 
@@ -66,11 +93,12 @@
            if(!check_stat(@sinfo[1],@sinfo[11]))
 	   {
                system("su @sinfo[11] -c  \"sudo x2gopgwrapper changestatus 'S' @sinfo[1] \" > /dev/null");
-	       print "@sinfo[1], is suspended, changing status from @sinfo[4] to S\n";
-	       print "(@sinfo[1])Unmounting all shares\n";	        
-	       system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount_session @sinfo[1]\"");
+	       #print "@sinfo[1], is suspended, changing status from @sinfo[4] to S\n";
+	       #print "(@sinfo[1])Unmounting all shares\n";	        
+	       system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount_session @sinfo[1]\" 2> /dev/null");
            }
        }       
      }
   }
+ }
 }
\ No newline at end of file
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin