मूल systemd सेवा फ़ाइलों को लिखना


103

मैं एक Nodejs एप्लिकेशन विकसित कर रहा हूं जो उपयोगकर्ता HTTP के माध्यम से स्थानीयहोस्ट के साथ इंटरैक्ट करता है। व्यावहारिक रूप से कोई पैरामीटर नहीं है और डेमॉन की वस्तुतः कोई निर्भरता नहीं है और इसे केवल लॉग-इन समय तक बनाए रखने की आवश्यकता है।

मैं स्टार्ट-अप स्क्रिप्ट के लिए प्रत्येक मंच पर मुहावरों का पालन करना चाहूंगा, और इसका मतलब है कि उबंटू पर अपस्टार्ट और फेडोरा पर सिस्टमड।

  • क्या सिस्टमड सिस्टम फाइल लिखने के लिए कोई अच्छा ट्यूटोरियल है?
  • क्या किसी भी 'सर्वोत्तम प्रथाओं' के बारे में पता होना चाहिए?

मुझे ये संसाधन मिले हैं:

मैं ज्यादातर संदर्भ के रूप में एपीआई की तलाश कर रहा हूं, साथ ही पालन करने के लिए एक मूल प्रारूप भी।


Systemd के बारे में आर्क लिनक्स विकी पेज सेवा फ़ाइलें लिखने के बारे में एक दिलचस्प अनुभाग है।
रूडी मटेला

> आदमी systemd.service>> आदमी systemd.unit
truezion

जवाबों:


29

मैं सिस्टमड मैनुअल पेजों के साथ शुरू करूंगा । वे सिस्टम और सेवाओं के व्यापक संसाधन का प्रतिनिधित्व करते हैं।

वहाँ भी है freedesktop systemd पूछे जाने वाले प्रश्न


43
मैन पेज उपयोगी होंगे (काश, यह साफ होता, हालांकि), लेकिन क्या एक बुनियादी सिस्टम फाइल ट्यूटोरियल है? जैसे कौन से हिस्से जरूरी हैं, किन हिस्सों की सिफारिश की जाती है और कौन से हिस्से वैकल्पिक हैं। आदमी पृष्ठों को लगता है कि मैं पहले से ही systemd सिस्टम फाइलों का विशेषज्ञ हूं, जो मैं नहीं हूं।
बीटगैमिट

ऐसा नहीं है कि मैं दुर्भाग्य से अवगत हूं। शायद एक धारणा है कि यदि आप इनस्क्रिप्ट लिख रहे हैं, तो आप पहले से ही जानते हैं कि इनस्क्रिप्ट कैसे लिखना है। आर्क लिपियों के माध्यम से देखें और जो आपको चाहिए उसकी तरह चुनें: archlinux.org/packages/community/i686/systemd
jasonwryan

1
धन्यवाद! आपकी मदद और मुझे मिले ब्लॉग के साथ, मैं काम करने के लिए एक मूल प्राप्त करने में सक्षम था। सिस्टर्ड अपस्टार्ट या पुराने सिस्टमव इनिट डेमन की तुलना में बहुत अच्छा लगता है।
बीटगैमाइट

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

1
@ macmadness86 ओपी एक आधिकारिक स्रोत की तलाश में था (अंतिम पैरा देखें); अधिकांश आवश्यकताओं के लिए, एक समान ऐप के लिए सेवा फ़ाइल पढ़ना और फिर manपृष्ठ के विशिष्ट भागों से परामर्श करना आपको वहां प्राप्त करने के लिए पर्याप्त से अधिक होगा। वे वास्तव में बहुत सीधे हैं।
jasonwryan

180

निम्न उदाहरण इस लिंक से प्रेरित है, जो वास्तव में सभी चरणों का उल्लेख नहीं करता है और केवल स्रोत को क्रेडिट करने के लिए सूचीबद्ध है: http://patrakov.blogspot.com/2011/01/writing-systemd-service-files.html

चरण 1 : मैंने यह फ़ाइल (नोट स्थान) बनाई है जो अनिवार्य रूप से विस्तारित तर्क के साथ एक बैश प्रक्रिया को आग लगाती है। आप अपनी खुद की कमांड फायर कर सकते हैं जो बैश से अलग हो सकती है।

[root@y500-fedora ~]# cat /etc/systemd/system/foo.service 
[Unit]
Description=foo

[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"

[Install]
WantedBy=multi-user.target

चरण 2 :

पुनः लोड करें systemd:

systemctl daemon-reload

नई सेवा शुरू करें:

systemctl enable foo

(इसी तरह आप disableयह कर सकते हैं)

(वैकल्पिक) चरण 3 : यह मल्टी-यूजर मोड (रन लेवल 3) में अगले रिबूट पर स्वचालित रूप से शुरू होना चाहिए, लेकिन यदि आप इसे तुरंत शुरू करना चाहते हैं:

systemctl start foo
systemctl status foo # optional, just to verify

अपडेट: पूर्णता के लिए, मुझे यह जोड़ना चाहिए कि ubuntu bionic एक बहुत ही संपूर्ण मैन पेज है। यहां आरटीएफएम


57
एक त्वरित ट्यूटोरियल पोस्ट करने और सिर्फ ऑफसाइट मैन पेज से जोड़ने के लिए धन्यवाद!
टॉबी जे

2
systemctl में संदर्भ के लिए एक बिल्ली कमांड शॉर्टकट है।
एंडी बेट्सवर्थ

बिल्ली कमांड शॉर्टकट क्या है? पूरे पथ में प्रवेश किए बिना सिस्टमड नियंत्रण फ़ाइलों को बनाने और संपादित करने के तरीके की तरह?
JpaytonWPD

यह फ़ाइल आदर्श रूप से क्या अनुमतियाँ होनी चाहिए?
knocte

2
Systemd.unit मैन पेज के अनुसार, आपको इसे लगाना चाहिए /etc/systemd/system। / usr / lib / systemd वह जगह है जहां उचित वितरण पैकेज अपनी फाइलें डालते हैं।
wbkang

4

2
हालांकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को यहां शामिल करना बेहतर होगा , और संदर्भ के लिए लिंक प्रदान करें।
स्टीफन राउच

1
@StephenRauch मुझे पता है कि सादे लिंक बहुत स्वागत नहीं हैं, लेकिन यह एक बहुत बड़ा विषय है और इसका जवाब देना आसान नहीं है।
कारकल

यह सबसे पठनीय मार्गदर्शिका थी जो मुझे मिली। यह एक अच्छा जवाब है। :-)
अपने मॉड का इलाज अच्छी तरह से

DigitalOcean में ट्यूटोरियल और संबद्ध प्रलेखन का एक बहुत व्यापक सेट है: digitalocean.com/community/tutorials/…
irbanana
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.