2013-02-14 53 views
0

我們已經開始通過創建一個/etc/init.d/[appname]腳本,並使用類似執行它運行我們的EC2應用爲服務:如何從centos中作爲服務運行的進程訪問環境變量?

服務[APPNAME]啓動|停止|重新啓動

但是,當我們這樣做時,我們的應用程序無法訪問環境變量。作爲服務訪問環境變化的進程如何啓動?或者相反,我們如何設置環境變量以便可以通過作爲服務運行的進程來訪問它們?具體來說,我們依靠這些變量來知道我們正在運行什麼環境......這是很好的知道......

+0

他們當然可以訪問*自己的*環境變量。 *你想訪問哪個環境? (「登錄用戶使用的登錄用戶」可以由許多地方定義的變量組成) – 2013-02-14 21:42:08

+0

哪些服務,你真的想到哪些環境變量? – 2013-02-14 23:17:52

+0

事實證明,我的問題是專有的。這些變量通過由我們管理員設置的腳本被加載到我的環境中,但我並不知道。將我的應用程序作爲服務運行無法訪問它們,因此只需採購/ etc/envscript就可以工作。 – 2013-02-19 15:49:11

回答

1

程序可以使用environ變量或更通常的getenv(3)庫函數訪問其環境變量。

您可以使用/proc文件系統查詢某個進程1234的環境,特別是通過/proc/1234/environ(請注意,這些條目是空終止的,因此請閱讀手冊頁)。

/etc/init.d/起始腳本通常shell腳本,所以你可以export FOO=var設置環境變量FOOvar這些腳本里面。 (您需要在腳本本身中添加export行,或者從這個文件執行該腳本)。請參閱this question

相關問題