X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/0fd1cedaf374bd51b529f30a333a47547326d8b9..e9bdb5063b52226148212399a017300d5d14baac:/projects/stargazer/main.cpp?ds=sidebyside diff --git a/projects/stargazer/main.cpp b/projects/stargazer/main.cpp index 7e83b72d..37582348 100644 --- a/projects/stargazer/main.cpp +++ b/projects/stargazer/main.cpp @@ -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 executersPid; -static pid_t stgChildPid; //----------------------------------------------------------------------------- bool StartModCmp(const PLUGIN_RUNNER & lhs, const PLUGIN_RUNNER & rhs) @@ -102,7 +99,11 @@ else } } //----------------------------------------------------------------------------- +#ifdef LINUX int StartScriptExecuter(char * procName, int msgKey, int * msgID, SETTINGS_IMPL * settings) +#else +int StartScriptExecuter(char *, int msgKey, int * msgID, SETTINGS_IMPL * settings) +#endif { STG_LOGGER & WriteServLog = GetStgLogger(); @@ -143,12 +144,20 @@ switch (executerPid) case 0: delete settings; +#ifdef LINUX Executer(*msgID, executerPid, procName); +#else + Executer(*msgID, executerPid); +#endif return 1; default: if (executersPid.empty()) { +#ifdef LINUX Executer(*msgID, executerPid, NULL); +#else + Executer(*msgID, executerPid); +#endif } executersPid.insert(executerPid); } @@ -162,11 +171,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 +296,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 +409,6 @@ creat(startFile.c_str(), S_IRUSR); while (true) { - sigset_t signalSet; sigfillset(&signalSet); int sig = 0; sigwait(&signalSet, &sig);