Belle II Software  release-05-01-25
Daemon.cc
1 #include "daq/slc/system/Daemon.h"
2 
3 #include <daq/slc/system/LogFile.h>
4 
5 #include <daq/slc/base/StringUtil.h>
6 
7 #include <unistd.h>
8 #include <cstring>
9 
10 using namespace Belle2;
11 
12 bool Daemon::start(const char* title,
13  int argc, char** argv,
14  int nargc, const char* msg)
15 {
16  g_argc = argc;
17  g_argv = argv;
18  bool isdaemon = false;
19  for (int i = 1; i < argc; i++) {
20  if (strcmp(argv[i], "-d") == 0) {
21  isdaemon = true;
22  nargc++;
23  } else if (strcmp(argv[i], "-h") == 0) {
24  LogFile::debug("Usage : %s %s [-d]", argv[0], msg);
25  return false;
26  }
27  }
28  if (argc < nargc + 1) {
29  LogFile::debug("Usage : %s %s [-d]", argv[0], msg);
30  return false;
31  }
32  LogFile::open(StringUtil::form("%s/%s", argv[0], title));
33  if (isdaemon) {
34  daemon(0, 0);
35  }
36  return true;
37 }
38 
39 
40 bool Daemon::restart()
41 {
42  return execv(g_argv[0], g_argv) != -1;
43 }
44 
45 int Daemon::g_argc = 0;
46 char** Daemon::g_argv = NULL;
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19