स्वचालित sudo और स्क्रीन कमांड


0

जब मैं .sh स्क्रिप्ट चलाता हूं, तो मैं एक अलग स्क्रीन कमांड सत्र में एक अलग उपयोगकर्ता के रूप में एक स्क्रिप्ट लॉन्च करने में सक्षम होना चाहूंगा।

यहाँ मुझे लगता है कि यह स्क्रिप्ट में हो सकता है:

#I am also starting xampp here, as that is what runs the webserver on this server
sudo /opt/lampp/lampp start 
screen sudo -u minecraft /home/minecraft/mc1/rtoolkit.sh
screen sudo -u minecraft /home/minecraft/mc2/rtoolkit.sh

जैसा कि आप देख सकते हैं, इस लिपि में 'सुडो ’के कई उदाहरण हैं। सूडो के लिए आवश्यक है कि मैं एक पासवर्ड इनपुट करूं, मैं सर्वर शुरू होने पर इस स्क्रिप्ट को स्वचालित रूप से चलाने की योजना बना रहा हूं। दूसरा मुद्दा यह है कि स्क्रीन में एक लॉगिन प्रॉम्प्ट हो सकता है।

अधिक जानकारी: ऑपरेटिंग सिस्टम: Ubuntu सर्वर 12.04 LTS

जवाबों:


0

बस जाने minecraftउपयोगकर्ता सत्र में ही शुरू जब आप मशीन शुरू करते हैं।

  1. sudo -u minecraft crontab -eउपयोगकर्ताओं को crontab संपादित करने के लिए चलाएँ ।

  2. @reboot screen /home/minecraft/mc1/rtoolkit.shसिस्टम फिर से शुरू होने पर उपयोगकर्ता के लिए क्रोन सत्र शुरू करने के लिए जोड़ें ।

उस लॉगिन प्रॉम्प्ट को कैसे हैंडल किया जाए यह प्रॉम्प्ट पर ही निर्भर करता है। अधिक जानकारी के बिना इसका उत्तर देना कठिन होगा और इसका अपना प्रश्न होना चाहिए।

अपने प्रश्नों को टिप्पणियों से संबोधित करने के लिए:

  1. नहीं, इसके लिए आपको मिनीक्राफ्ट उपयोगकर्ता के रूप में लॉग इन करने की आवश्यकता नहीं है। आप इसे केवल इसलिए सेट कर रहे हैं ताकि जब सिस्टम शुरू हो, तो सिस्टम खुद ही मिनीक्राफ्ट यूजर के रूप में स्क्रीन सेशन शुरू करने का ध्यान रखेगा ।

    उपयोग करके sudo -u minecraft, आप मिनीक्राफ्ट उपयोगकर्ता के रूप में एक कमांड निष्पादित कर रहे हैं । इसलिए, जैसे ही आपने उपयोगकर्ताओं को क्रोन टेबल संपादित किया है, आप बाद में स्क्रीन सत्र को फिर से खोलकर चला सकते हैं sudo -u screen -r

    आप देखते हैं, स्क्रीन सत्र तब मिनीक्राफ्ट उपयोगकर्ता द्वारा शुरू किया जाएगा। जब आपने पहले स्क्रीन सेशन खुद शुरू किया था और फिर, स्क्रीन सेशन के अंदर, मिनीक्राफ्ट यूजर के रूप में अपनी स्क्रिप्ट शुरू की ।

    अब, आप केवल एक कदम पहले minecraft उपयोगकर्ता संदर्भ में स्विच कर रहे हैं।

  2. नहीं, यह व्यवहार पुनरारंभ करने के लिए अनन्य नहीं है। वास्तव में "पुनरारंभ" और "सामान्य स्टार्टअप" के बीच कोई अंतर नहीं है;)


Crontab, और क्रोन क्या है? मैंने पहले भी शब्द सुने हैं, लेकिन मुझे नहीं पता कि उनका क्या मतलब है। लॉगिन प्रॉम्प्ट केवल एक नियमित लॉगिन प्रॉम्प्ट है जो दिखाता है कि जब मैं एक नई स्क्रीन का उपयोग करके screen
दिखाता हूं

क्रोन विशिष्ट समय (या रीबूट जैसी घटनाओं) पर कार्यों को चलाने के लिए एक प्रणाली है। crontab वह उपकरण है जो आपको किसी दिए गए उपयोगकर्ता के लिए क्रोन प्रविष्टियों की तालिका तक पहुंचने की अनुमति देता है। screenखुद लॉग के लिए संकेत नहीं देगा। sudoआपके पासवर्ड के लिए संकेत देगा, और आप इसे अपने नए स्क्रीन सत्र में पहली कमांड के रूप में चला रहे हैं। क्रोन के माध्यम से सत्र शुरू करने से यह अप्रचलित हो जाता है।
डेर होकस्टापलर

ठीक है, इसका मतलब यह है कि मुझे मिनीक्राफ्ट उपयोगकर्ता के रूप में लॉग इन करना होगा? वर्तमान में मेरे पास यह सेटअप है ताकि कई उपयोगकर्ता (मिनीक्राफ्ट, वेबसर्वर, एमसी पैनल आदि के लिए) सभी अपनी निर्देशिका में केवल पढ़ / लिख सकते हैं, लेकिन एक खाता है जो इन निर्देशिकाओं में से किसी में भी पढ़ और लिख सकता है (उपयोग के लिए) ftp प्रबंध, और जब मैं टर्मिनल के माध्यम से सिस्टम का उपयोग करता हूं), मैं अभी भी इस उपयोगकर्ता का उपयोग करने में सक्षम होना चाहता हूं। इसके अलावा आप कहते हैं "जब सिस्टम पुनरारंभ होता है" तो क्या इसमें केवल एक पुनरारंभ शामिल है, या इसमें सामान्य स्टार्टअप भी शामिल हैं?
जॉन ०१ डीव

@ john01dav मैंने उत्तर में कुछ और जानकारी जोड़ी
Der Hochstapler

0

स्टार्टअप पर एक डेमॉन शुरू करने का उचित तरीका /etc/rc[0-6].d( /etc/rc.d/rc[0-6].dकुछ सिस्टम में पाया गया ) इनिट स्क्रिप्ट का उपयोग करना है । के साथ एक क्रॉन काम @rebootकरेगा, लेकिन क्रोन स्क्रिप्ट के लिए अभिप्रेत है जो एक बार निष्पादित होता है और फिर डेमॉन को पैदा करने के बजाय बाहर निकलता है।

अपने उदाहरण में, आप क्रोन से LAMPP शुरू करने का प्रयास कर रहे हैं। इसके बजाय आपको /etc/rc?.dइंगित करने से प्रतीकात्मक संबंध बनाना चाहिए /etc/init.d/lampp, जो /opt/lampp/lamppइस प्रकार है:

sudo ln -s /opt/lampp/lampp /etc/init.d/
sudo update-rc.d lampp defaults
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.