हमारे पास एक कस्टम सी ++ डिमन एप्लिकेशन है जो एक बार फोर्क करता है। इसलिए हम Ubuntu 12.04 पर हमारे कल का नवाब लिपि में यह कर दिया गया है और यह पूरी तरह काम करता है:अपस्टार्ट स्क्रिप्ट में प्री-स्टार्ट में पर्यावरण चर सेट कैसे करें?
expect fork
exec /path/to/the/app
लेकिन अब हम अपने अनुप्रयोग के लिए एक तर्क जो मशीन पर CPU की संख्या में शामिल हैं में पारित करने के लिए की जरूरत है जिस पर यह रन:
cat /proc/cpuinfo | grep processor | wc -l
हमारा पहला प्रयास यह था:
expect fork
exec /path/to/the/app -t `cat /proc/cpuinfo | grep processor | wc -l`
कि सही आयकर मूल्य के साथ हमारे एप्लिकेशन शुरू होता है, कल का नवाब गलत पीआईडी मूल्य ट्रैक करता है, मैं क्योंकि उन बिल्ली संभालने कर रहा हूँ , grep & wc हमारे ऐप से पहले सभी लॉन्च प्रक्रियाओं को निष्पादित करता है।
मैंने यह भी कोशिश की, और यहां तक कि यह काम नहीं करता है, मुझे लगता है क्योंकि एक env var सेटिंग एक प्रक्रिया चलाता है?
expect fork
script
NUM_CORES=32
/path/to/the/app -t $NUM_CORES
end script
मैं भी एक env श्लोक में ऐसा करने की कोशिश की है, लेकिन जाहिरा तौर पर उन आदेशों को चलाने के नहीं है:: नवोदय अभी भी गलत पीआईडी पटरियों
env num_cores=`cat /proc/cpuinfo | grep processor | wc -l`
इसके अलावा पूर्व शुरू में ऐसा करने की कोशिश की, लेकिन env वहाँ सेट कार्यकारी छंद में कोई मान नहीं हैं वार्स:
pre-start
NUM_CORES=32
end script
किसी भी विचार कैसे इस को ठीक से सेट NUM_CORES मिलता है, और अभी भी कल का नवाब कि कांटे एक बार हमारे ऐप्लिकेशन के लिए सही पीआईडी ट्रैक करने के लिए प्राप्त करने के लिए?
सुपर मददगार! एक बात: मुझे लगता है कि स्क्रिप्ट ब्लॉक के अंदर आपको अभी भी "exec/path/to/app" का उपयोग करने की आवश्यकता है यदि आपको पहले पिड ट्रैकिंग के लिए जरूरी है। एक बार मैंने "exec" वापस जोड़ा, यह मेरे लिए खूबसूरती से काम किया। –
@ कोडीए.रे जो सेवा के शुरुआती व्यवहार पर पूरी तरह से निर्भर है। हमारे मामले में, 'डेमॉन की उम्मीद है कि उचित हो सकता है। – mpm