मुझे नहीं पता कि यह उपयोगी है, लेकिन मुझे पता चला है कि प्रत्येक सेवा के लिए, पर्यावरण चर को सीधे सेवा में जोड़ने का विकल्प होता है।
यह रजिस्ट्री के माध्यम से किया जाता है।
मान लें कि आपका सेवा के लिए महत्वपूर्ण है ...
HKLM \ SYSTEM \ CurrentControlSet \ Services \ YourService
एक REG_MULTI_SZ पर्यावरण बुलाया बनाएँ।
अब आप की तरह प्रविष्टियों में जोड़ सकते हैं ...
Var1=Value1
Var2=Value2
और इन सेवा कोड के लिए उपलब्ध हो जाएगा।
यदि आप एक सेवा (instsrv.exe और srvany.exe) के रूप में स्क्रिप्ट स्थापित करने के लिए Windows संसाधन टूलकिट का उपयोग कर रहे हैं, तो फिर, आपके पास सेवा के लिए पर्यावरण चर सेट करने का विकल्प है, लेकिन संभवतः यह है गलत है क्योंकि यह srvany.exe के लिए होगा।
इसके बजाय, आप कुंजी ...
HKLM \ SYSTEM \ CurrentControlSet \ Services \ YourService \ पैरामीटर
का उपयोग करें और एक REG_MULTI_SZ उसी तरह से प्रविष्टियों सेट AppEnvironment
बुलाया पैदा करते हैं।
और अब आपकी स्क्रिप्ट सेवा के अपने पर्यावरण चर हैं।
मैं इन तकनीकों का उपयोग PHP + WinCache के साथ कर रहा हूं ताकि मुझे प्रत्येक सेवा के लिए एक APP_POOL_ID अद्वितीय सेट किया जा सके जो WinCache को सभी "थ्रेड" के लिए केंद्रीय कैश (APP_POOL_ID पर आधारित) साझा करने की अनुमति देता है (WShell का उपयोग गैर- बच्चे को "धागे" को अवरुद्ध करना और अभी भी वही WinCache लॉन्चर के रूप में साझा करना, सरल, अंतर-प्रक्रिया संचार की अनुमति देना)।
वैसे भी। मुझे उम्मीद है कि यह कुछ हद तक मदद करता है।
मुझे लगता है कि, मुख्य रूप से, आप वैश्विक वातावरण में अनावश्यक env_vars नहीं जोड़ रहे हैं। आप उन्हें लक्षित और अद्वितीय आप एक से अधिक 1.
सादर,
रिचर्ड जब रख सकते हैं।
मुझे लगता है कि मुझे यह स्पष्ट करना चाहिए था, लेकिन TIP_HOME एक सिस्टम चर है। मैंने सोचा कि सिस्टम चर उपयोगकर्ता-विशिष्ट नहीं थे? – Brian
ठीक है, एक परीक्षण के रूप में आप अपनी सेवा में डीबगिंग कोड जोड़ सकते हैं ताकि इसे सभी पर्यावरण वार्स के माध्यम से स्टार्टअप पर देखा जा सके और उन्हें एक अस्थायी फ़ाइल में आउटपुट किया जा सके। – EBGreen