सिस्टमड के साथ कम टिट्स कैसे प्राप्त करें?


29

पुराने दिनों में मैंने अभी-अभी संशोधन किया है /etc/inittab। अब, systemd के साथ, यह tty [1-6] अपने आप शुरू होता है, मुझे tty [4-6] को कैसे निष्क्रिय करना चाहिए?

ऐसा लगता है कि केवल एक systemd सेवा फ़ाइल है, और यह %Iविभिन्न tty सत्रों को असतत करने के लिए उपयोग करता है। मुझे आशा है कि मुझे उस सेवा को हटाने और प्रत्येक को getty@ttyX.serviceमैन्युअल रूप से बनाने की आवश्यकता नहीं है ।

जवाबों:


35

"अतिरिक्त" TTYs को अक्षम करने की कोई वास्तविक आवश्यकता नहीं है क्योंकि systemdगेट्टी मांग के तहत उत्पन्न होती है: man systemd-getty-generatorविवरण के लिए देखें। ध्यान दें कि, डिफ़ॉल्ट रूप से, यह स्वचालित स्पॉन केवल VT6 तक वीटी के लिए किया जाता है (परंपरावादी लिनक्स लिनक्स की नकल करने के लिए)।

जैसा कि लेन्नर्ट एक ब्लॉग पोस्ट 1 में कहते हैं :

चीजों को अधिक कुशल बनाने के लिए अब केवल मांग पर लॉगिन शुरू किए गए हैं। जैसे ही आप वीटी में स्विच करते हैं गेट्टी सेवा getty@tty2.service, getty@tty5.service इत्यादि के लिए त्वरित हो जाती है। चूँकि हमें बिना शर्त प्रक्रिया शुरू नहीं करनी है, इससे हमें थोड़े संसाधनों को बचाने की अनुमति मिलती है, और स्टार्ट-अप थोड़ा तेज हो जाता है।

यदि आप विशिष्ट संख्या में गेटी को कॉन्फ़िगर करना चाहते हैं, तो आप logind.confइस प्रविष्टि में उपयुक्त प्रविष्टि के साथ संशोधित कर सकते हैं :

NAutoVTs=3


1. वास्तव में पदों की पूरी श्रृंखला-वर्तमान में व्यवस्थापकों के लिए 18- systemd क्रमांकित है , अच्छी तरह से पढ़ने लायक है।


जवाब के लिए धन्यवाद, जेसन। मेरी कंपनी के आवेदन को एक भौतिक सर्वर पर भेज दिया गया है और पुराने वितरणों पर हम अन्य टिट्स को लॉक करने के लिए इनटैब को संशोधित करेंगे।
jcbwlkr

11

डेबियन-आधारित सिस्टम पर, एक फाइल होती है, जो स्टार्टअप पर 5 अतिरिक्त गेटी लॉन्च करने का कारण बनती है, यदि आपने सिर्फ एक सर्वर बनाया है (बिना dbus सेवा के):

/lib/systemd/system/getty.target.wants/getty-static.service

इसमें, यह कहता है:

[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service
RemainAfterExit=true

बस इस फ़ाइल को हटाने से अतिरिक्त गेट्टी स्पॉइंग से बंद हो जाएगी। सूची को छोटा करने के लिए स्वतंत्र महसूस करें यदि आप केवल एक अतिरिक्त गेटी (2 पुण्य कंसोल के लिए) चाहते हैं। ध्यान दें कि आप स्वचालित रूप से tty1 पर एक प्राप्त करते हैं ताकि आपके पास हमेशा कम से कम एक वर्चुअल कंसोल हो।

यह भी देखें: अगर dbus गायब है, तो systemd-logind.service शुरू करने में विफल रहता है


2
NB: फाइल सिस्टमड पैकेज के स्वामित्व में है, इसलिए इसे संशोधित करने या हटाने के लिए, dpkg-divertपहले उपयोग करें । लेकिन, इसे बाहर निकालने के लिए एक सिस्टम-देशी तरीका भी है - रन करें sudo systemctl mask getty-static.serviceऔर अपना खुद का सेट करें/etc
जोसिफ रोडिन

2
maskएक सक्षम सेवा के रूप में आईएनजी शोर है , यह /etcसामग्री को ओवरराइड करने के लिए एक ही नाम के साथ एक इकाई बनाने के लिए क्लीनर होगा । यदि आप शून्य स्टैटिक गेटी की शुरुआत करना चाहते हैं, तो ExecStart = / bin / true का उपयोग करें।
sourcejedi

अन्य सिस्टमड सही तरीका पैकेज संस्करण को ओवरराइड करना है (आपको वास्तव में उस फ़ाइल को हटा देना चाहिए) का उपयोग करते हुए sudo systemctl edit getty-static.service, जो ओवरराइड फ़ाइल बनाएगा जो एक से अधिक पूर्व/lib
ग्रहण

8

संभवतया 1-3 और 7-9 काम करते हुए टीटीवाई को 4-6 पर विशेष रूप से निष्क्रिय करने के लिए, रन करें:

for i in {4..6}; do
  systemctl mask getty@tty${i}.service
done

maskसिम्लिंक बनाता है /etc/systemd/system/{name} -> /dev/nullजो प्रभावी रूप से सेवा को निष्क्रिय करता है। इसे चलाने का प्रयास systemctl startत्रुटि प्रदर्शित करेगाFailed to start NAME.service: Unit NAME.service is masked.

यदि आपके पास A.service है Wants=masked.service, तो start Aसफल होगा , लेकिन जर्नल में निर्भरता प्रारंभ त्रुटि भी उत्पन्न करेगा।

अगर आपके पास B.service है Requires=masked.service, तो start Bफेल भी होंगे।

यूप, नेक्रों। चीयर्स।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.