(file) Return to ServerProcessUnix.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Service

Diff for /pegasus/src/Service/ServerProcessUnix.cpp between version 1.11 and 1.11.16.5

version 1.11, 2006/08/09 21:13:11 version 1.11.16.5, 2006/12/28 21:24:21
Line 55 
Line 55 
 #define PROCSIZE sizeof(struct procsinfo) #define PROCSIZE sizeof(struct procsinfo)
 } }
 #endif #endif
   #include <Pegasus/ExecutorClient/ExecutorClient.h>
  
 PEGASUS_USING_PEGASUS; PEGASUS_USING_PEGASUS;
 PEGASUS_USING_STD; PEGASUS_USING_STD;
Line 119 
Line 120 
  
 int ServerProcess::cimserver_fork(void) int ServerProcess::cimserver_fork(void)
 { {
   #if defined(PEGASUS_ENABLE_PRIVILEGE_SEPARATION)
   
       // Register to handle SIGUSR1:
       getSigHandle()->registerHandler(PEGASUS_SIGUSR1, sigUsr1Handler);
       getSigHandle()->activate(PEGASUS_SIGUSR1);
   
       // Register to handle SIGTERM:
       getSigHandle()->registerHandler(SIGTERM, sigTermHandler);
       getSigHandle()->activate(SIGTERM);
   
       // Set umask to use when creating files.
       umask(S_IRWXG | S_IRWXO);
   
       // Save process id.
       server_pid = getpid();
   
       // Ask the executor process to daemonize.
       ExecutorClient::daemonizeExecutor();
   
       return 0;
   
   #else /* !defined(PEGASUS_ENABLE_PRIVILEGE_SEPARATION) */
   
     getSigHandle()->registerHandler(PEGASUS_SIGUSR1, sigUsr1Handler);     getSigHandle()->registerHandler(PEGASUS_SIGUSR1, sigUsr1Handler);
     getSigHandle()->activate(PEGASUS_SIGUSR1);     getSigHandle()->activate(PEGASUS_SIGUSR1);
     getSigHandle()->registerHandler(SIGTERM, sigTermHandler);     getSigHandle()->registerHandler(SIGTERM, sigTermHandler);
     getSigHandle()->activate(SIGTERM);     getSigHandle()->activate(SIGTERM);
  
   pid_t pid;   pid_t pid;
   
   if( (pid = fork() ) < 0)   if( (pid = fork() ) < 0)
   {   {
       getSigHandle()->deactivate(PEGASUS_SIGUSR1);       getSigHandle()->deactivate(PEGASUS_SIGUSR1);
Line 147 
Line 172 
       }       }
       if( !handleSigUsr1 )       if( !handleSigUsr1 )
         {         {
         MessageLoaderParms parms("src.Service.ServerProcessUnix.CIMSERVER_START_TIMEOUT",              MessageLoaderParms parms(
           "The cimserver command timed out waiting for the CIM server to start.");                  "src.Service.ServerProcessUnix.CIMSERVER_START_TIMEOUT",
         PEGASUS_STD(cerr) << MessageLoader::getMessage(parms) << PEGASUS_STD(endl);                  "The cimserver command timed out waiting for the "
                   "CIM server to start.");
               PEGASUS_STD(cerr) << MessageLoader::
                   getMessage(parms) << PEGASUS_STD(endl);
       }       }
           printf("EXIT GRAVE\n");
       exit(graveError);       exit(graveError);
   }   }
  
   setsid();   setsid();
   
   umask(S_IRWXG | S_IRWXO );   umask(S_IRWXG | S_IRWXO );
  
   // spawned daemon process doesn't need the old signal handlers of its parent      // spawned daemon process doesn't need the old signal handlers of its
       // parent
   getSigHandle()->deactivate(PEGASUS_SIGUSR1);   getSigHandle()->deactivate(PEGASUS_SIGUSR1);
   getSigHandle()->deactivate(SIGTERM);   getSigHandle()->deactivate(SIGTERM);
  
   // get the pid of the cimserver process   // get the pid of the cimserver process
   server_pid = getpid();   server_pid = getpid();
   
   return(0);   return(0);
   
   #endif /* !defined(PEGASUS_ENABLE_PRIVILEGE_SEPARATION) */
 } }
  
 long ServerProcess::get_server_pid() long ServerProcess::get_server_pid()
Line 466 
Line 500 
     if (aixcimsrvrunning(pid, getProcessName())!=-1)     if (aixcimsrvrunning(pid, getProcessName())!=-1)
         return true;         return true;
 #endif #endif
   
   return false;   return false;
 } }
  


Legend:
Removed from v.1.11  
changed lines
  Added in v.1.11.16.5

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2