1 #include "daq/slc/system/Executor.h"
2 #include "daq/slc/system/LogFile.h"
11 void Executor::setExecutable(
const char* format, ...)
16 vsprintf(ss, format, ap);
21 void Executor::setExecutable(
const std::string& path)
26 void Executor::addArg(
const char* format, ...)
31 vsprintf(ss, format, ap);
33 m_arg_v.push_back(ss);
36 void Executor::addArg(
const std::string& arg)
38 m_arg_v.push_back(arg);
41 bool Executor::execute(
bool isdaemon)
44 argv[0] = (
char*)m_path.c_str();
45 std::cerr <<
"" << argv[0] <<
" ";
46 for (
size_t i = 0; i < m_arg_v.size(); i++) {
47 argv[i + 1] = (
char*)m_arg_v[i].c_str();
48 std::cerr <<
"" << argv[i + 1] <<
" ";
50 std::cerr << std::endl;
51 argv[m_arg_v.size() + 1] = NULL;
52 if (isdaemon) daemon(0, 0);
53 if (execvp(m_path.c_str(), argv) == -1) {
54 LogFile::error(
"Faield to start %s", argv[0]);