From 7fbf0e363799a9839138de59cf3c3c4cf5683a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Thu, 20 Apr 2017 12:06:27 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@443 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- src_main/system/piprocess.cpp | 15 +++++++++++++++ src_main/system/piprocess.h | 1 + utils/system_daemon/main.cpp | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) 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;