Verlihub अपने Lua प्लगइन के माध्यम से Lua स्क्रिप्ट लोड कर सकता है। जब किसी हब को Verlihub सर्वर को पुन: संकलित किए बिना एक छोटे व्यवहार परिवर्तन की आवश्यकता हो तो Lua का उपयोग करें।
सामान्य उपयोगों में डिस्प्ले बॉट, शेड्यूल की गई घोषणाएं, हेल्पर कमांड, सत्यापन नियम, स्वचालित मॉडरेशन हेल्पर्स, हब सांख्यिकी और एकीकरण हुक शामिल हैं। Lua समर्थन प्लगइन स्थापित, निर्मित और सक्षम होने पर निर्भर करता है।
Lua प्लगइन क्या करता है
Lua प्लगइन हब प्रक्रिया के अंदर Lua स्क्रिप्ट निष्पादित करता है। यह प्रशासकों को Verlihub C++ स्रोत को संपादित करने या एक संकलित प्लगइन लिखने की तुलना में हब अनुकूलन के लिए एक हल्का मार्ग देता है।
Lua स्क्रिप्ट की समीक्षा करना और उन्हें संकलित प्लगइन्स की तुलना में बदलना आमतौर पर आसान होता है जब परिवर्तन छोटा और हब-विशिष्ट होता है।
- कस्टम हब कमांड
- स्वचालित स्वागत संदेश
- समयबद्ध घोषणाएँ
- उपयोगकर्ता सत्यापन जाँच
- बॉट प्रतिक्रियाएँ
- ऑपरेटर सहायक आदेश
- लॉगिंग या अधिसूचना हुक
- सरल स्पैम-रोधी या बाढ़-रोधी जाँच
- हब-विशिष्ट व्यवहार जो C++ प्लगइन को उचित नहीं ठहराता
आवश्यकताएं
Lua समर्थन सक्षम करने से पहले, पुष्टि करें कि Lua प्लगइन सर्वर पर मौजूद है। एक सामान्य प्लगइन पथ है /usr/local/lib/liblua_pi.so.
जांचें कि प्लगइन फ़ाइल मौजूद है या नहीं:
ls -lah /usr/local/lib/liblua_pi.so
यदि फ़ाइल मौजूद नहीं है, तो Lua संभवतः निर्मित या स्थापित नहीं किया गया था। Lua प्लगइन समर्थन सक्षम होने के साथ Verlihub का पुनर्निर्माण करें।
सिस्टम और इंस्टॉलेशन विधि के आधार पर, प्लगइन भी मौजूद हो सकता है /usr/lib, /usr/lib64, /usr/local/lib, या /usr/local/lib64. हब कॉन्फ़िगरेशन बदलने से पहले इसे खोजें:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
बिल्डिंग Verlihub Lua समर्थन के साथ
यदि स्थापना के दौरान Lua समर्थन शामिल नहीं किया गया था, तो पहले Lua विकास पैकेज स्थापित करें। डेबियन या Ubuntu पर:
sudo apt update
sudo apt install lua5.4 liblua5.4-dev
कुछ Verlihub बिल्ड Lua 5.4 के बजाय Lua 5.3 का उपयोग करते हैं। जब आपकी शाखा या वितरण को इसकी आवश्यकता हो तो मिलान पैकेज स्थापित करें:
sudo apt install lua5.3 liblua5.3-dev
फिर CMake के माध्यम से सक्षम Lua प्लगइन के साथ Verlihub का पुनर्निर्माण करें:
cmake .. -DWITH_LUA=ON
make
sudo make install
सटीक CMake विकल्प नाम Verlihub संस्करण के अनुसार भिन्न हो सकता है। उत्पादन केंद्र के पुनर्निर्माण से पहले उपलब्ध निर्माण विकल्पों की जाँच करें:
cmake -LAH ..
स्थापना के बाद, पुष्टि करें कि प्लगइन लाइब्रेरी स्थापित की गई थी:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
प्लगइन कमांड
Lua प्लगइन को एक ऑपरेटर खाते से Verlihub प्लगइन कमांड के माध्यम से प्रबंधित किया जाता है।
- स्थापित या ज्ञात प्लगइन्स की सूची बनाएं
!lstplug. - Lua प्लगइन को इसके साथ पंजीकृत करें
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.. - Lua प्लगइन को सक्रिय के साथ चिह्नित करें
!modplug lua -a 1. - प्लगइन को इसके साथ लोड करें
!onplug lua. - लोड किए गए प्लगइन्स की पुष्टि करें
!pluglist.
!lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua
!pluglist
आदेश स्पष्टीकरण
!lstplug
Verlihub पर ज्ञात प्लगइन्स को सूचीबद्ध करता है। पहले यह देखने के लिए इसका उपयोग करें कि Lua प्लगइन पहले से पंजीकृत है या नहीं।
!lstplug
!addplug
Lua प्लगइन को Verlihub के साथ पंजीकृत करता है।
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
विकल्प का अर्थ:
lua: आंतरिक प्लगइन नाम.-p /usr/local/lib/liblua_pi.so: Lua प्लगइन साझा लाइब्रेरी का पथ।-a 1: प्लगइन को सक्रिय के रूप में चिह्नित करता है।-d Support for Lua scripts.: मानव-पठनीय प्लगइन विवरण।
!modplug
प्लगइन रिकॉर्ड को संशोधित करता है और सुनिश्चित करता है कि Lua प्लगइन सक्रिय चिह्नित है।
!modplug lua -a 1
!onplug
Lua प्लगइन को जोड़ने और सक्षम करने के बाद उसे लोड या प्रारंभ करता है।
!onplug lua
!pluglist
वर्तमान में लोड किए गए प्लगइन्स दिखाता है। यह पुष्टि करने के लिए इसका उपयोग करें कि Lua सक्रिय है।
!pluglist
अनुशंसित Lua स्क्रिप्ट स्थान
Lua स्क्रिप्ट को Verlihub सेवा उपयोगकर्ता के स्वामित्व वाली एक समर्पित निर्देशिका में रखें।
sudo mkdir -p /usr/local/etc/verlihub/lua
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod 750 /usr/local/etc/verlihub/lua
यदि आपकी Verlihub सेवा किसी अन्य उपयोगकर्ता के रूप में चलती है, तो बदलें verlihub:verlihub सही उपयोगकर्ता और समूह के साथ.
sudo chown -R vh:vh /usr/local/etc/verlihub/lua
sudo chown -R www-data:www-data /usr/local/etc/verlihub/lua
Lua स्क्रिप्ट निर्देशिकाओं को विश्व-लेखन योग्य न बनाएं। टालना chmod 777 /usr/local/etc/verlihub/lua.
उदाहरण Lua स्क्रिप्ट
एक छोटी परीक्षण स्क्रिप्ट बनाएं:
sudo nano /usr/local/etc/verlihub/lua/test.lua
उदाहरण सामग्री:
-- Simple Verlihub Lua test script.
-- This file confirms that the Lua plugin can load and execute scripts.
function Main()
VH:SendToAll("Lua test script loaded successfully.")
end
उपलब्ध Lua फ़ंक्शन Verlihub Lua प्लगइन एपीआई पर निर्भर करते हैं। कुछ इंस्टॉलेशन सहायक ऑब्जेक्ट या फ़ंक्शंस को अलग तरह से प्रदर्शित करते हैं, इसलिए अपने Verlihub संस्करण द्वारा उपयोग की गई Lua स्क्रिप्ट लाइब्रेरी के साथ उदाहरणों की तुलना करें।
Lua स्क्रिप्ट लोड हो रही हैं
Lua प्लगइन सक्रिय होने के बाद, स्क्रिप्ट को आमतौर पर प्लगइन-विशिष्ट Lua कमांड या कॉन्फ़िगर स्क्रिप्ट निर्देशिकाओं के माध्यम से लोड किया जा सकता है।
हब के अंदर से उपलब्ध Lua प्लगइन कमांड की जाँच करके प्रारंभ करें:
!help lua
!plughelp lua
यदि प्लगइन स्क्रिप्ट लिस्टिंग, लोडिंग, अनलोडिंग या रीलोडिंग का समर्थन करता है, तो आप इनके समान कमांड देख सकते हैं:
!lua
!lslua
!loadlua
!unloadlua
!reloadlua
कमांड नाम Verlihub बिल्ड और प्लगइन संस्करणों के बीच भिन्न हो सकते हैं।
सत्यापन Lua कार्य कर रहा है
सेटअप को चरणों में सत्यापित करें. पहले पुष्टि करें कि प्लगइन पंजीकृत है, फिर पुष्टि करें कि यह लोड हो गया है:
!lstplug
!pluglist
फिर Lua प्लगइन संदेशों के लिए सर्वर लॉग की जाँच करें:
journalctl -u verlihub -n 100 --no-pager
यदि Verlihub को systemd द्वारा प्रबंधित नहीं किया जाता है, तो इसके बजाय कॉन्फ़िगर की गई Verlihub लॉग निर्देशिका की जाँच करें। सामान्य स्थानों में शामिल हैं /var/log/verlihub और /usr/local/var/log/verlihub.
सेवा लॉग बड़ा होने पर Lua -संबंधित लॉग प्रविष्टियाँ खोजें:
grep -i lua /var/log/verlihub/* 2>/dev/null
उत्पादन सिफ़ारिशें
छोटे कस्टम व्यवहार के लिए Lua का उपयोग करें, भारी प्रसंस्करण के लिए नहीं। Lua कोड हब प्रक्रिया के अंदर चलता है, इसलिए एक खराब स्क्रिप्ट चैट, लॉगिन या उपयोगकर्ता-सूची अपडेट को प्रभावित कर सकती है।
अच्छे Lua उपयोग के मामले:
- सरल आदेश
- हब संदेश
- उपयोगकर्ता जाँच करता है
- हल्का स्वचालन
- छोटे एकीकरण हुक
इनके लिए Lua का उपयोग करने से बचें:
- लंबे समय से चल रही पृष्ठभूमि वाली नौकरियाँ
- भारी डेटाबेस प्रश्न
- बड़ी फ़ाइल प्रोसेसिंग
- नेटवर्क कॉल को ब्लॉक करना
- सीपीयू-भारी लूप
- कुछ भी जो हब प्रक्रिया को रोक सकता है
कनेक्टेड उपयोगकर्ताओं के साथ सार्वजनिक हब पर लोड करने से पहले स्टेजिंग हब पर स्क्रिप्ट का परीक्षण करें।
सुरक्षा नोट्स
केवल विश्वसनीय प्रशासक ही Lua स्क्रिप्ट अपलोड या संशोधित करने में सक्षम होने चाहिए।
अनुशंसित अनुमतियाँ:
sudo chown -R verlihub:verlihub /usr/local/etc/verlihub/lua
sudo chmod -R u=rwX,g=rX,o= /usr/local/etc/verlihub/lua
अविश्वसनीय उपयोगकर्ताओं को Lua फ़ाइलें लिखने की अनुमति न दें। जब तक फ़ाइल अनुमतियाँ लॉक न हो जाएं, रहस्यों को सीधे Lua स्क्रिप्ट में संग्रहीत न करें।
प्लगइन प्रबंधन कमांड को केवल ऑपरेटर या केवल व्यवस्थापक के लिए रखें। सामान्य उपयोगकर्ताओं को स्क्रिप्ट लोड, अनलोड या बदलने में सक्षम नहीं होना चाहिए।
समस्या निवारण
प्लगइन फ़ाइल नहीं मिली
लक्षणों में शामिल हैं Cannot load plugin, No such file, या liblua_pi.so not found. लाइब्रेरी खोजें, फिर संग्रहीत प्लगइन पथ को अपडेट करें:
find /usr /usr/local -name 'liblua_pi.so' 2>/dev/null
!modplug lua -p /correct/path/to/liblua_pi.so
Lua प्लगइन प्लगइन सूची में दिखाई नहीं देता है
जांचें कि क्या इसे जोड़ा गया था. यदि यह गायब है, तो इसे जोड़ें, इसे सक्रिय के रूप में चिह्नित करें और इसे लोड करें:
!lstplug
!addplug lua -p /usr/local/lib/liblua_pi.so -a 1 -d Support for Lua scripts.
!modplug lua -a 1
!onplug lua
प्लगइन मौजूद है लेकिन लोड होने में विफल रहता है
साझा लाइब्रेरी निर्भरता की जाँच करें और गुम Lua लाइब्रेरीज़ की तलाश करें:
ldd /usr/local/lib/liblua_pi.so
not found
यदि Lua लाइब्रेरी गायब हैं, तो मिलान करने वाले Lua रनटाइम पैकेज स्थापित करें।
sudo apt install lua5.4 liblua5.4-0
sudo apt install lua5.3 liblua5.3-0
स्क्रिप्ट नहीं चलती
स्क्रिप्ट पथ, फ़ाइल अनुमतियाँ और Verlihub लॉग जाँचें। यह भी सत्यापित करें कि Lua प्लगइन स्क्रिप्ट द्वारा प्रयुक्त स्क्रिप्ट एपीआई का समर्थन करता है।
ls -lah /usr/local/etc/verlihub/lua
journalctl -u verlihub -n 100 --no-pager
स्क्रिप्ट लोड करने के बाद हब अस्थिर हो जाता है
स्क्रिप्ट को अनलोड करें या Lua प्लगइन को अक्षम करें। यदि हब प्रतिक्रियाशील नहीं है, तो शेल से Verlihub को रोकें और स्क्रिप्ट को Lua निर्देशिका से बाहर ले जाएं:
sudo systemctl stop verlihub
sudo mkdir -p /usr/local/etc/verlihub/lua-disabled
sudo mv /usr/local/etc/verlihub/lua/problem-script.lua /usr/local/etc/verlihub/lua-disabled/
sudo systemctl start verlihub
सुझाया गया व्यवस्थापक वर्कफ़्लो
- पुष्टि करें कि Lua प्लगइन मौजूद है।
- इसके साथ प्लगइन जोड़ें
!addplug. - इसे सक्षम करें
!modplug. - इसकी शुरुआत करें
!onplug. - इसकी पुष्टि करें
!pluglist. - एक समर्पित Lua स्क्रिप्ट निर्देशिका बनाएँ।
- एक छोटी परीक्षण स्क्रिप्ट जोड़ें.
- Verlihub लॉग जाँचें।
- एक-एक करके प्रोडक्शन स्क्रिप्ट जोड़ें।
- परिवर्तन करने से पहले कार्यशील स्क्रिप्ट का बैकअप रखें।
Verlihub Lua स्क्रिप्ट लाइब्रेरी
Verlihub Lua स्क्रिप्ट लाइब्रेरी में उदाहरण स्क्रिप्ट और हब अनुकूलन के लिए पुन: प्रयोज्य Lua कोड शामिल हैं। इसे समर्थित फ़ंक्शंस, इवेंट हुक और कमांड पैटर्न के संदर्भ के रूप में उपयोग करें।
लाइब्रेरी से स्क्रिप्ट का उपयोग करते समय:
- इसे स्थापित करने से पहले स्क्रिप्ट की समीक्षा करें।
- पुष्टि करें कि यह आपके Verlihub संस्करण से मेल खाता है।
- पहले किसी गैर-उत्पादन केंद्र पर इसका परीक्षण करें।
- हार्डकोडेड पथ, हब नाम, ऑपरेटर उपनाम या डेटाबेस सेटिंग्स की जाँच करें।
- संपादन से पहले मूल स्क्रिप्ट का बैकअप रखें।