@ प्रतीक और systemctl और vsftpd


27

मेरा एक दो भाग है।

  1. Systemctl स्क्रिप्ट में @ सिंबल का क्या महत्व है?

  2. 16 में फेडोरा में vsftpd कैसे शुरू करें, (जो कुछ ट्यूटोरियल में एक @ में @ नाम है लगता है)? मैंने सब कुछ ट्यूटोरियल कहा है, और यह अभी भी मुझे एक त्रुटि देता है। http://blog.tuxforge.com/fedora-16-vsftpd/

मैंने क्या किया

systemctl enable vsftpd@.service

मैं देख रहा हूं

Failed to issue method call: No such file or directory

(मैंने इसे एक पूर्ण पथ के साथ भी आज़माया है, और मैंने जाँचने के बाद ऐसी कोई फ़ाइल नहीं है। वास्तविक फ़ाइल में @ चिह्न नहीं है, और / lib / systemd / system / निर्देशिका के अंतर्गत स्थित है। मैंने भी कोशिश की है। @ सिंबल के साथ और उसके बिना काम करना शुरू करना और सक्षम करना, लेकिन काम करना शुरू करना। मुझे नहीं पता कि लेख अब अप्रचलित हो गया है, लेकिन मैं अभी भी सेवा शुरू नहीं कर सकता। जब मैं इसे जोड़ने की कोशिश करता हूं तो यह मुझे नहीं होने देता है)

संपादित करें: मुझे किसी भी तरह शुरू करने के लिए सेवा मिली है, लेकिन मैं अभी भी जानना चाहूंगा कि कुछ सेवा नामों में @ प्रतीक का क्या अर्थ है। इसके अलावा मुझे अभी भी एक लॉगिन त्रुटि संख्या मिल रही है # 500 निर्देशिका नहीं बदल सकती [...], इसका क्या मतलब है?

इसे शुरू करने के लिए मैंने सिर्फ टाइप किया

sudo systemctl enable vsftpd.service

sudo systemctl start vsftpd.service (the problem was I was using an absolute path for this I think)

जवाबों:


48

@प्रतीक विशेष सेवाओं, सॉकेट, और अन्य इकाइयों जहां कई उदाहरण चलाया जा सकता है के लिए है।

उदाहरण के लिए, getty@.serviceवह सेवा है जो पाठ लॉगिन टर्मिनल प्रदान करती है। जब आप प्रेस Ctrl+ Alt+ F2, getty@tty2.serviceशुरू कर दिया है, आभासी टर्मिनल # 2 का निर्माण।

इस कार्यक्षमता का उपयोग करने वाली एक अन्य सेवा OpenVPN है। आप /etc/openvpn/work.confअपने कार्यस्थल पर वीपीएन से कनेक्ट करने के लिए कॉन्फ़िगर की गई फ़ाइल बना सकते हैं , और फिर systemctl start openvpn@work.serviceउससे कनेक्ट कर सकते हैं। इसी तरह, आप बना सकते हैं /etc/openvpn/home.conf, फिर शुरू करें openvpn@home.serviceयदि आपके पास घर पर वीपीएन था। यह आपको उस .serviceप्रत्येक वीपीएन के लिए एक फ़ाइल बनाने से रोकता है जिससे आप कनेक्ट होते हैं।

लेकिन इसके लिए मेरा शब्द न लें। कोशिश करके देखो! आइए एक सरल सेवा बनाएं जो संदेश को syslog के लिए आउटपुट करती है। /etc/systemd/system/echo@.serviceनिम्नलिखित सामग्री के साथ एक फ़ाइल बनाएँ :

[Unit]
Description=Echo '%I'

[Service]
Type=oneshot
ExecStart=/bin/echo %i
StandardOutput=syslog

नोटिस %i? systemd पॉपुलेट करेगा कि @सेवा शुरू होने पर जो भी साइन का अनुसरण करेगा । तो, शुरू करने की कोशिश करें echo@foo.service:

systemctl start echo@foo.service

फिर, पत्रिका की जाँच करें :

 journalctl -n10

नीचे, आप देखेंगे कि सिस्टमड भागा /bin/echo foo:

Feb 24 12:41:01 localhost echo[8412]: foo

अब, कोशिश करो systemctl start echo@bar.service। इस बार, systemd के %iसाथ आबाद होगा bar, इसलिए आप देखेंगे:

Feb 24 12:42:51 localhost echo[8432]: bar

यही सब है इसके लिए! कुछ भी संभावित @रूप से संकेत का पालन कर सकता है , क्योंकि सिस्टमड बस %iइसके साथ सेवा परिभाषा में बदलता है। OpenVPN इसे कॉन्फ़िगरेशन के लिए उपयोग करता है, अन्य सेवाएं पोर्ट नंबर की तरह कुछ और के लिए उपयोग कर सकती हैं।

अधिक जानकारी के लिए, देखें man systemd.unit


1
@ प्रतीक को शामिल करने के अलावा क्या उन्हें सामान्य सेवाओं की तरह शुरू और रोक दिया गया है? उदाहरण के लिए अगर मैं दूसरी बार सेवा शुरू कर रहा था, तो क्या मैं फिर से शुरू करूंगा? आप कई उदाहरणों को कैसे शुरू करते हैं?
रुबिक्सिब्यूक

हाँ, @जो भी उपयुक्त हो , साइन का अनुसरण करते हुए टेक्स्ट को बदलें । मैंने एक उदाहरण जोड़ा कि आप देख सकते हैं कि यह कैसे काम करता है।
पैच

@Patches: "@ प्रतीक विशेष सेवाओं के लिए है जहां कई उदाहरण चलाए जा सकते हैं?" मैं इसे freedesktop.org/software/systemd/man/systemd.service.html
pevik

यह systemd.unit में वर्णित है । यह सॉकेट्स और अन्य प्रकार की इकाइयों के लिए भी उपयोगी है । (अब जवाब देने के लिए जोड़ा गया, धन्यवाद। :-)
पैचेज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.