git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ticket. Fixed enumeration values.
[stg.git]
/
projects
/
stargazer
/
main.cpp
diff --git
a/projects/stargazer/main.cpp
b/projects/stargazer/main.cpp
index 3db3b2669ede87b264d6c417108e2fb35342f6bc..702bfb8663930c2aca4efb82a4b85cf5a6e6507e 100644
(file)
--- a/
projects/stargazer/main.cpp
+++ b/
projects/stargazer/main.cpp
@@
-66,7
+66,7
@@
namespace
std::set<pid_t> executers;
void StartTimer();
std::set<pid_t> executers;
void StartTimer();
-int StartScriptExecuter(char * procName, int msgKey, int * msgID
, SETTINGS_IMPL * settings
);
+int StartScriptExecuter(char * procName, int msgKey, int * msgID);
int ForkAndWait(const std::string & confDir);
void KillExecuters();
int ForkAndWait(const std::string & confDir);
void KillExecuters();
@@
-89,9
+89,9
@@
else
}
//-----------------------------------------------------------------------------
#if defined(LINUX) || defined(DARWIN)
}
//-----------------------------------------------------------------------------
#if defined(LINUX) || defined(DARWIN)
-int StartScriptExecuter(char * procName, int msgKey, int * msgID
, SETTINGS_IMPL * settings
)
+int StartScriptExecuter(char * procName, int msgKey, int * msgID)
#else
#else
-int StartScriptExecuter(char *, int msgKey, int * msgID
, SETTINGS_IMPL * settings
)
+int StartScriptExecuter(char *, int msgKey, int * msgID)
#endif
{
STG_LOGGER & WriteServLog = GetStgLogger();
#endif
{
STG_LOGGER & WriteServLog = GetStgLogger();
@@
-132,7
+132,6
@@
switch (pid)
return -1;
case 0:
return -1;
case 0:
- delete settings;
#if defined(LINUX) || defined(DARWIN)
Executer(*msgID, pid, procName);
#else
#if defined(LINUX) || defined(DARWIN)
Executer(*msgID, pid, procName);
#else
@@
-251,7
+250,7
@@
WriteServLog("Stg v. %s", SERVER_VERSION);
for (size_t i = 0; i < settings.GetExecutersNum(); i++)
{
for (size_t i = 0; i < settings.GetExecutersNum(); i++)
{
- int ret = StartScriptExecuter(argv[0], settings.GetExecMsgKey(), &msgID
, &settings
);
+ int ret = StartScriptExecuter(argv[0], settings.GetExecMsgKey(), &msgID);
if (ret < 0)
{
STG_LOGGER & WriteServLog = GetStgLogger();
if (ret < 0)
{
STG_LOGGER & WriteServLog = GetStgLogger();
@@
-267,6
+266,11
@@
for (size_t i = 0; i < settings.GetExecutersNum(); i++)
PIDFile pidFile(settings.GetPIDFileName());
PIDFile pidFile(settings.GetPIDFileName());
+struct sigaction sa;
+memset(&sa, 0, sizeof(sa));
+sa.sa_handler = SIG_DFL;
+sigaction(SIGHUP, &sa, NULL); // Apparently FreeBSD ignores SIGHUP by default when launched from rc.d at bot time.
+
sigset_t signalSet;
sigfillset(&signalSet);
pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
sigset_t signalSet;
sigfillset(&signalSet);
pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
@@
-339,8
+343,16
@@
while (running)
switch (sig)
{
case SIGHUP:
switch (sig)
{
case SIGHUP:
+ {
+ SETTINGS_IMPL newSettings(settings);
+ if (newSettings.ReadSettings())
+ WriteServLog("ReadSettings error. %s", newSettings.GetStrError().c_str());
+ else
+ settings = newSettings;
+ WriteServLog.SetLogFileName(settings.GetLogFileName());
traffCnt.Reload();
traffCnt.Reload();
- manager.reload();
+ manager.reload(settings);
+ }
break;
case SIGTERM:
running = false;
break;
case SIGTERM:
running = false;
@@
-364,6
+376,8
@@
while (running)
WriteServLog("+++++++++++++++++++++++++++++++++++++++++++++");
WriteServLog("+++++++++++++++++++++++++++++++++++++++++++++");
+manager.stop();
+
if (loop.Stop())
WriteServLog("Event loop not stopped.");
if (loop.Stop())
WriteServLog("Event loop not stopped.");