]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
NPAL 18309
authordmv <dmv@opencascade.com>
Thu, 20 Dec 2007 15:13:29 +0000 (15:13 +0000)
committerdmv <dmv@opencascade.com>
Thu, 20 Dec 2007 15:13:29 +0000 (15:13 +0000)
src/Session/SALOME_Session_Server.cxx

index af7004f6ca12659fd90e61e433e19aef093e1634..c94505e0eecb0c6a5d206869f51c678abcae7fa8 100755 (executable)
@@ -39,6 +39,8 @@
 #include <iostream>
 #ifndef WNT
 #include <unistd.h>
+#include <iostream.h>
+#include <string.h>
 #endif
 
 #include <qdir.h>
@@ -372,6 +374,28 @@ void shutdownServers( SALOME_NamingService* theNS )
     Registry::Components_var registry = Registry::Components::_narrow(objR);
     if ( !CORBA::is_nil(registry) && ( session->getPID() != registry->getPID() ) )
       registry->end();
+    
+    // 9) Kill OmniNames
+    QString fileName( ::getenv ("OMNIORB_CONFIG") );
+    QString portNumber;
+    if ( !fileName.isEmpty() ) {
+      QFile aFile( fileName );
+      if ( aFile.open(IO_ReadOnly) ) {
+       QRegExp re("InitRef = .*:([0-9]+)$");
+       QTextStream stream ( &aFile );
+       while ( !stream.atEnd() ) {
+         QString textLine = stream.readLine();
+         if ( re.search( textLine ) > -1 )
+           portNumber = re.cap(1);
+       }
+       aFile.close();
+      }
+    }
+    if ( !portNumber.isEmpty() ) {
+      QString cmd = QString( "ps -eo pid,command | grep -v grep | grep -E \"omniNames.*%1\" | awk '{cmd=sprintf(\"kill -9 %s\",$1); system(cmd)}'" ).arg( portNumber );
+      system ( cmd.latin1() );
+    } 
+
   }
 }