Google अश्वेत समुदायों के लिए नस्लीय इक्विटी को आगे बढ़ाने के लिए प्रतिबद्ध है। देखो कैसे।
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

खुश उपयोग

किसी भी happy-* साथ -h ध्वज का प्रयोग happy-* उस कमांड के विकल्पों की मदद और सूची देखने के लिए।

राज्य की फाइलें

हैप्पी स्टोर और ध्यान से एक एकल रिकॉर्ड के साथ JSON फ़ाइल में अपनी टोपोलॉजी स्थिति को बनाए रखता है। इस स्टेट फ़ाइल का उपयोग करके, हैप्पी टोपोलॉजी बनाने या निकालने के लिए उपयुक्त कमांड चला सकता है।

डिफ़ॉल्ट राज्य फ़ाइल ~/.happy_state.json पर स्थित है। डिफ़ॉल्ट राज्य का नाम happy , जैसा कि happy-state उत्पादन में देखा गया है:

 happy-state

State Name:  happy 

समानांतर राज्य

हैप्पी कई सह-समानांतर समानांतर स्थितियों का समर्थन करता है। वर्तमान स्थिति HAPPY_STATE_ID पर्यावरण चर द्वारा तय की गई है। यदि HAPPY_STATE_ID वातावरण में मौजूद नहीं है, तो happy की डिफ़ॉल्ट स्थिति मान का उपयोग किया जाता है।

हैप्पी इंस्टॉलेशन के दौरान HAPPY_STATE_ID नहीं बनाया गया है। state अलावा किसी अन्य मान के साथ एक बनाएं और तुरंत किसी अन्य हैप्पी स्टेट पर स्विच करें।

 export HAPPY_STATE_ID="sunny"

अब एक अलग राज्य में happy-state परिणामों की जाँच:

 happy-state

State Name:  sunny 

प्रत्येक राज्य अपनी स्वयं की ~/.${HAPPY_STATE_ID}_state.json फ़ाइल में बनाए रखा जाता है। राज्यों के बीच स्विच करने के लिए, export HAPPY_STATE_ID=" <state-name> " कमांड फिर से चलाएँ।

समानांतर राज्यों के साथ स्थापना रद्द करें

यदि आप समानांतर हैप्पी स्टेट्स का उपयोग करते हैं और आप हैप्पी को अनइंस्टॉल करना चाहते हैं, तो प्रत्येक स्टेट के साथ happy-state-delete को सक्रिय करना सुनिश्चित करें। यह सुनिश्चित करता है कि हैप्पी द्वारा बनाए गए सभी नेटवर्क नेमस्पेस आपके सिस्टम से लिनक्स होस्ट नेटवर्क कॉन्फ़िगरेशन को प्रभावित किए बिना हटा दिए जाएं।

उदाहरण के लिए, happy और sunny की दो अवस्थाओं के साथ:

 export HAPPY_STATE_ID="sunny"
happy-state-delete
export HAPPY_STATE_ID="happy"
happy-state-delete 

आवश्यकतानुसार प्रत्येक समानांतर स्थिति फ़ाइल को मैन्युअल रूप से निकालें:

 rm -f ~/.sunny_state.json
rm -f ~/.sunny_state.json.lock
rm -f ~/.happy_state.json
rm -f ~/.happy_state.json.lock 

लॉग्स

मुबारक के लिए लॉग भेजता syslog डिफ़ॉल्ट रूप से। एक दूसरा लॉग बैकअप / /tmp/${HAPPY_STATE_ID}_debug_log.txt भेजा जाता है।

हैप्पी लॉग देखने के लिए, एक अलग टर्मिनल विंडो में happy-state -l चलाएं। जब आप हैप्पी कमांड दर्ज करते हैं, तो लॉग शेल कमांड को दिखाता है। यह समझने का एक अच्छा तरीका है कि हैप्पी कैसे काम करता है, यदि आप लिनक्स नेटवर्क नेमस्पेस में रुचि रखते हैं।

उदाहरण के लिए, happy-node-add node00 एक हैप्पी नोड बनाता है। इस कमांड के लिए लॉग आउटपुट है:

DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 does not exist
DEBUG [Driver:writeState():365] Happy: writing Happy state to file
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns add happy000
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 exists
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns exec happy000 ifconfig lo up

सभी Driver:CallCmd() लाइनें शेल कमांड हैं जो हैप्पी कॉल करती हैं। लॉग में प्रत्येक पंक्ति पर विचार करें:

# Check to see if the target namespace (happy000) exists
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 does not exist

# Write the link between node00 and happy000 in ~/.happy_state.json
DEBUG [Driver:writeState():365] Happy: writing Happy state to file

# Create the network namespace for the node
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns add happy000

# Check to see if the target namespace (happy000) exists
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 exists

# Bring up the loopback interface within the happy000 namespace
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns exec happy000 ifconfig lo up

नमूना टोपोलॉजी

नमूना टोपोलॉजी परीक्षण के लिए हैप्पी और ओपनवेव रिपॉजिटरी दोनों में शामिल हैं। जटिल टोपोलॉजी के निर्माण के लिए कमांड सीखने के लिए भी उनका उपयोग करें।

टोपोलॉजी JSON और शेल स्क्रिप्ट प्रारूप में हैं।

JSON

JSON टोपोलॉजी फ़ाइलों को happy-state-load या weave-state-load आदेशों का उपयोग करके weave-state-load । यदि टोपोलॉजी में बुनाई शामिल है, तो आपको टोपोलॉजी को लोड करने के लिए weave-state-load का उपयोग करना चाहिए, अन्यथा बुन-विशिष्ट कमांड को छोड़ दिया जाता है।

उदाहरण के लिए, बुनाई के बिना एक टोपोलॉजी:

happy-state-load thread_wifi_ap_internet.json

बुनाई के साथ एक टोपोलॉजी:

weave-state-load three_nodes_on_thread_weave.json

बाद में उपयोग के लिए एक अलग JSON फ़ाइल के रूप में अपनी वर्तमान टोपोलॉजी को बचाने के लिए (उदाहरण के लिए, एक परीक्षण केस स्क्रिप्ट ), happy-shell -s उपयोग करें:

happy-shell -s my_topology.json

यह $HOME निर्देशिका में टोपोलॉजी स्थिति फ़ाइल को बचाता है।

शैल लिपि

शेल स्क्रिप्ट टोपोलॉजी फाइलों में संगत JSON फाइलों में टोपोलॉजी बनाने के लिए हैप्पी और वीवे कमांड का सेट होता है। डिफ़ॉल्ट रूप से इन लिपियों में निष्पादन योग्य अनुमति नहीं है। उन्हें दो तरह से चलाया जा सकता है:

bash कमांड का उपयोग करके:

bash thread_wifi_ap_internet.sh

निष्पादन योग्य अनुमतियां लागू करके:

chmod +x thread_wifi_ap_internet.sh
./thread_wifi_ap_internet.sh

विन्यास

हैप्पी के पास तीन कॉन्फ़िगरेशन फ़ाइलें हैं:

विन्यास फाइल विवरण
~/.happy_conf.json व्यक्तिगत या प्लग-इन उपयोग के लिए कॉन्फ़िगरेशन चर। happy-configuration कमांड का उपयोग करके इन मानों को सेट करें।
<path-to-happy> /happy/conf/main_config.json प्राथमिक हैप्पी कॉन्फ़िगरेशन चर।
<path-to-happy> /happy/conf/log_config.json लॉग कॉन्फ़िगरेशन।

कॉन्फ़िगरेशन चर जोड़ें

हम आपको किसी भी व्यक्तिगत या प्लग-इन चर को सेट करने के लिए happy-configuration कमांड का उपयोग करने की सलाह देते हैं जो कि आपकी ज़रूरतों की विशिष्ट तैनाती से परे है।

उदाहरण के लिए, हैप्पी को यह बताने के लिए कि परीक्षण स्क्रिप्ट के लिए weave_path test-apps डायरेक्टरी को weave_path , weave_path वेरिएबल सेट करें:

happy-configuration weave_path <path-to-openweave-core> /build/x86_64-unknown-linux-gnu/src/test-apps

हैप्पी स्टोर कॉन्फ़िगरेशन वैरिएबल ~/.happy_conf.json

नोड्स में प्रक्रियाएं

खुश नकली नोड्स के भीतर प्रक्रियाओं को शुरू करने और रोकने के लिए आदेश प्रदान करता है।

एक प्रक्रिया शुरू करने के लिए:

happy-process-start <node-name> <custom-process-name> <command>

उदाहरण के लिए, थ्रेडनोड नामक नोड में लगातार एक पिंग चलाने के लिए:

happy-process-start ThreadNode ContinuousPing ping 8.8.8.8

उपरोक्त उदाहरण में, ContinuousPing उस प्रक्रिया के लिए उपयोगकर्ता-परिभाषित नाम है जो हैप्पी प्रक्रिया का प्रबंधन करने के लिए उपयोग करता है। प्रक्रिया को निष्पादित करने और happy-process-stop को मारने के लिए happy-process-stop को निलंबित करने के लिए happy-process-wait का उपयोग करें।

प्रोसेस आउटपुट /tmp । उदाहरण के लिए, ContinuousPing प्रक्रिया शुरू करने के बाद, /tmp निर्देशिका की जाँच करें:

ls /tmp/happy*
/tmp/happy_018691_1524087014.192197_ContinuousPing.out

इस .out फ़ाइल में ContinuousPing प्रक्रिया के लिए आउटपुट होता है।

का उपयोग sudo

लिनक्स कर्नेल द्वारा नियंत्रित नेटवर्क कॉन्फ़िगरेशन को खुश करता है। चूंकि केवल root कर्नेल कॉन्फ़िगरेशन को बदल सकता है, हैप्पी आपको ऑपरेशन के दौरान sudo पासवर्ड दर्ज करने का संकेत देता है।

मुबारक का उपयोग करता है $SUDO कॉल करने के लिए प्रणाली वातावरण चर sudo । यदि $SUDO परिभाषित नहीं है, मुबारक एक सामान्य बनाता है sudo कॉल।

पायथन पटकथा

स्थापना के बाद, हैप्पी पायथन पैकेज को निम्न import विवरण का उपयोग करके पायथन पर्यावरण में आयात किया जा सकता है:

import happy

अलग-अलग कमांड मॉड्यूल /happy पाए जाते हैं जिन्हें निम्नानुसार आयात किया जाता है:

import happy.HappyNodeAdd

मॉड्यूल विकल्पों को पुनः प्राप्त करने के लिए, option() फ़ंक्शन को कॉल करें। उदाहरण के लिए, HappyNodeAdd मॉड्यूल विकल्पों को पुनः प्राप्त करने के लिए:

module options
import happy.HappyNodeAdd
options = happy.HappyNodeAdd.option()