]> git.stg.codes - stg.git/blobdiff - projects/stargazer/main.cpp
libstgcommon.s needs iconv
[stg.git] / projects / stargazer / main.cpp
index 7e83b72dce6cf0489cdacd13e25e0f2b33bcbe26..a8678893c4d7935e1c84e66aa3240812e1e700d9 100644 (file)
@@ -46,9 +46,7 @@
 #include "stg/plugin.h"
 #include "stg/logger.h"
 #include "stg/scriptexecuter.h"
-#include "stg/conffiles.h"
 #include "stg/version.h"
-#include "stg/pinger.h"
 #include "stg_timer.h"
 #include "settings_impl.h"
 #include "users_impl.h"
@@ -72,7 +70,6 @@ using namespace std;
 #define START_FILE "/._ST_ART_ED_"
 
 set<pid_t> executersPid;
-static pid_t stgChildPid;
 
 //-----------------------------------------------------------------------------
 bool StartModCmp(const PLUGIN_RUNNER & lhs, const PLUGIN_RUNNER & rhs)
@@ -162,11 +159,11 @@ int ForkAndWait(const string &)
 #endif
 {
 #ifndef NO_DAEMON
-stgChildPid = fork();
+pid_t childPid = fork();
 string startFile = confDir + START_FILE;
 unlink(startFile.c_str());
 
-switch (stgChildPid)
+switch (childPid)
     {
     case -1:
         return -1;
@@ -287,6 +284,10 @@ for (size_t i = 0; i < settings->GetExecutersNum(); i++)
 
 PIDFile pidFile(settings->GetPIDFileName());
 
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
 StartTimer();
 WaitTimer();
 if (!IsStgTimerRunning())
@@ -396,7 +397,6 @@ creat(startFile.c_str(), S_IRUSR);
 
 while (true)
     {
-    sigset_t signalSet;
     sigfillset(&signalSet);
     int sig = 0;
     sigwait(&signalSet, &sig);