मैं ArchLinux में स्टार्ट-अप पर आदेश चलाकर उपयोग के बारे में कैसे जाना होगा Systemd
की तरह rc.local
में Sysv
?
मैं ArchLinux में स्टार्ट-अप पर आदेश चलाकर उपयोग के बारे में कैसे जाना होगा Systemd
की तरह rc.local
में Sysv
?
जवाबों:
आदेश पर निर्भर करता है। सबसे सामान्य मामलों के लिए, आपको कमांड की आवश्यकता नहीं है।
यदि आप एक sysctl (एक फ़ाइल में /proc/sys
) को समायोजित करना चाहते हैं , तो उन्हें /etc/sysctl.d/*.conf
(आमतौर पर 99-sysctl.conf
या 99-local.conf
; मैनुअल पेज ) में कॉन्फ़िगर किया जा सकता है :
kernel.sysrq = 1
kernel.pid_max = 4194304
यदि यह एक मॉड्यूल पैरामीटर के तहत है /sys/modules
, तो इसे तब सेट किया जाना चाहिए जब मॉड्यूल पहले लोड हो, /etc/modprobe.d/*.conf
(आम तौर पर modprobe.conf
, मैनुअल पेज देखें):
options kafs rootcell=stacken.kth.se
यदि आप डिवाइस पैरामीटर में लिखना चाहते हैं /sys
, या यदि आप डिवाइस की सेटिंग्स को बदलने के लिए कोई प्रोग्राम चलाना चाहते हैं, तो एक udev नियम लिखें जो डिवाइस को प्लग इन करने और इसे डालने पर ऐसा करेगा /etc/udev/rules.d/*.rules
। मैनुअल पेज है udev(7)
, और आपको udevadm info
सही डिवाइस से मिलान करने की कोशिश करते समय उपयोगी मिलेगा ।
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*", \
RUN+="/usr/bin/ethtool -s %k wol d"
# This rule checks if a device has an attribute in its /sys subdir:
ACTION=="add", \
SUBSYSTEM=="scsi_host", \
TEST=="link_power_management_policy", \
ATTR{link_power_management_policy}="medium_power"
यदि आप कहीं और फ़ाइल लिखना चाहते हैं, या फ़ाइल या निर्देशिका बनाना चाहते हैं, तो उपयोग करें /etc/tmpfiles.d
( मैनुअल पेज )।
यदि आप किसी मॉड्यूल को लोड करना चाहते हैं , तो उसका नाम एक फ़ाइल /etc/modules-load.d/*.conf
( मैनुअल पेज ) में डालें ।
अंत में, यदि आप एक सामान्य कमांड चलाना चाहते हैं या डेमॉन शुरू करना चाहते हैं, तो एक .service
यूनिट फ़ाइल ( कई मैनुअल पेजों में से एक ) लिखें । इसे अंदर रखें /etc/systemd/system/*.service
और कई उदाहरणों का उपयोग करें /lib/systemd/system
। इसके माध्यम से प्रबंधित किया जाएगा systemctl
।
ध्यान देने योग्य कुछ बातें: Type=
पैरामीटर को सही ( simple
बनाम forking
बनाम oneshot
) सेट करना पड़ता है , और ExecStart=
पैरामीटर के लिए एक साधारण कमांड लाइन की आवश्यकता होती है और शेल-जैसे सिंटैक्स (नहीं >
, नहीं &&
, नहीं $(...)
और इतने पर, केवल सरल $ENVVAR
और %x
) को स्वीकार नहीं किया जाता है ।
एक विशिष्ट डिवाइस के उपयोग के बाद सेवाओं को ऑर्डर करना संभव है, (उदाहरण के लिए )।After=name.device
After=sys-subsystem-net-devices-%i.device
दोनों #archlinux और #systemd पर अपने आईआरसी चैनल है freenode नेटवर्क।
Type=
पैरामीटर पर भी ध्यान दें systemd.service(5)
। इसके अलावा आर्क के आईआरसी चैनल या मंचों से पूछने की कोशिश करें, क्योंकि सिस्टम यूनिट केवल rc.d स्क्रिप्ट की तरह ही पैकेज का हिस्सा होनी चाहिए।