diff --git a/src_main/system/piprocess.cpp b/src_main/system/piprocess.cpp index 705b51a7..80a22f34 100755 --- a/src_main/system/piprocess.cpp +++ b/src_main/system/piprocess.cpp @@ -291,3 +291,18 @@ void PIProcess::setEnvironmentVariable(const PIString & variable, const PIString } env << variable + "=" + value; } + + +PIString PIProcess::getEnvironmentVariable(const PIString & variable) { + PIStringList env_ = currentEnvironment(); + PIString s, v; + for (int i = 0; i < env_.size_s(); ++i) { + s = env_[i]; + v = s.left(s.find("=")).trimmed(); + if (v == variable) { + return s.right(s.find("=")).trimmed(); + } + } + return PIString(); +} + diff --git a/src_main/system/piprocess.h b/src_main/system/piprocess.h index eca9d433..718c67f8 100755 --- a/src_main/system/piprocess.h +++ b/src_main/system/piprocess.h @@ -84,6 +84,7 @@ public: static PIStringList currentEnvironment(); static int currentPID(); + static PIString getEnvironmentVariable(const PIString & variable); private: virtual void run(); diff --git a/utils/system_daemon/main.cpp b/utils/system_daemon/main.cpp index ba5d22b6..3812d931 100755 --- a/utils/system_daemon/main.cpp +++ b/utils/system_daemon/main.cpp @@ -337,7 +337,7 @@ int main(int argc, char * argv[]) { args << "-n" << name; //PIProcess p; //p.exec("/bin/readlink", PIStringList() << "/proc/self/exe"); - piCout << PIProcess::currentEnvironment(); + piCout << PIProcess::getEnvironmentVariable("_"); piCout << "start in background:" << PISystemInfo::instance()->execCommand;// << "; with args" << args; PIProcess::execIndependent(PISystemInfo::instance()->execCommand, args); return 0;