सबसे पहले, systemd
एक पारंपरिक यूनिक्स नहीं है init
। सिस्टमड बहुत अधिक है, इसलिए दोनों की तुलना करना थोड़ा अनुचित है।
प्रश्न का उत्तर देने के लिए, जो कुछ आवश्यक प्रतीत होता है वह कुछ बायनेरिज़ और निम्नलिखित कॉन्फ़िगरेशन फ़ाइलें हैं:
/usr/lib/systemd/system/default.target
/usr/lib/systemd/system/basic.target
/usr/lib/systemd/system/sysinit.target
/usr/lib/systemd/system/getty.target
/usr/lib/systemd/system/getty@.service
/usr/lib/systemd/system/console-getty.service
systemctl enable console-getty.service getty@tty2.service
तब जारी करने से ये सिम्बल बनते हैं:
/etc/systemd/system/default.target.wants/getty@tty2.service -> / lib / systemd / system / getty @ सेवा
/etc/systemd/system/getty.target.wants/console-getty.service -> /lib/systemd/system/console-getty.service
नोट : डायनामिक रूप से systemd
शुरू करने के लिए विशेष सुविधाओं का उपयोग करने के लिए agetty
, ऑन-डिमांड Alt+ को दबाते समय F3, यह प्रतीत होता है कि आपके पास कम से कम ये दो फाइलें भी होनी चाहिए:
/etc/systemd/logind.conf
/lib/systemd/system/autovt@.service
जहां autovt@.service
एक सहानुभूति है getty@.service
।
कॉन्फ़िगरेशन फ़ाइलों की सामग्री:
default.target
, getty.target
, sysinit.target
फ़ाइलों को छोड़कर यह खाली हो सकता है [Unit]
टैग और (शायद) Description=xxx
।
basic.target
निर्भरता की जानकारी भी शामिल है:
[यूनिट]
विवरण = मूल प्रणाली
= Sysinit.target आवश्यक है
चाहता है = सॉकेट्स.टायर टाइमर्स.टार्ग पाथ्स.टार्ग स्लाइस.टार्गेट
के बाद = sysinit.target sockets.target timers.target paths.target sles.target
मुझे यकीन नहीं है कि अगर फ़ाइलों की जरूरत है या नहीं, तो लक्ष्य के संदर्भ मौजूद नहीं हैं। वे systemd.special(7)
मैन पेज पर वर्णित हैं ।
console-getty.service
: (सांत्वना पर आंदोलन के लिए विशेष मामला)
[यूनिट]
विवरण = कंसोल गेटी
के बाद = systemd-user-session.service plymouth-left-wa.service
= Getty.target से पहले
[सेवा]
ExecStart = - / sbin / agetty --noclear --keep-baud कंसोल 115200,38400,9600 TERM
प्रकार = बेकार
पुनः प्रारंभ हमेशा =
RestartSec = 0
UtmpIdentifier = विपक्ष
TTYPath = / dev / कंसोल
TTYReset = हाँ
TTYVHangup = हाँ
KillMode = प्रक्रिया
IgnoreSIGPIPE = नहीं
SendSIGHUP = हाँ
[इंस्टॉल]
WantedBy = getty.target
getty@.service
: (कंसोल को छोड़कर सभी गेटी सेवाओं के लिए सामान्य विन्यास)
[यूनिट]
विवरण =% I पर गेटी
के बाद = systemd-user-session.service plymouth-left-wa.service
= Getty.target से पहले
IgnoreOnIsolate = हाँ
ConditionPathExists = / dev / tty0
[सेवा]
ExecStart = - / sbin / agetty --noclear% I $ TERM
प्रकार = बेकार
पुनः प्रारंभ हमेशा =
RestartSec = 0
UtmpIdentifier =% मैं
TTYPath = / dev /% मैं
TTYReset = हाँ
TTYVHangup = हाँ
TTYVTDisallocate = नहीं
KillMode = प्रक्रिया
IgnoreSIGPIPE = नहीं
SendSIGHUP = हाँ
[इंस्टॉल]
WantedBy = getty.target
DefaultInstance = TTY1
अंत में आपको शायद इन विशेष बायनेरिज़ में से कुछ की ज़रूरत है (मैंने कोशिश नहीं की है कि कौन से महत्वपूर्ण हैं):
/ lib / systemd / systemd (/ sbin / init आमतौर पर इस ओर इशारा करता है)
/ Lib / systemd / systemd-logind
/ Lib / systemd / systemd-cgroups-एजेंट
/ Lib / systemd / systemd-उपयोगकर्ता के सत्र
/ Lib / systemd / systemd-vconsole सेटअप
/ Lib / systemd / systemd-अद्यतन-utmp
/ Lib / systemd / systemd नींद
/ Lib / systemd / systemd-sysctl
/ Lib / systemd / systemd-initctl
/ Lib / systemd / systemd-उत्तर-पासवर्ड
/ Lib / systemd / systemd-एसी बिजली
/ Lib / systemd / systemd-एक्टिवेट
/ Lib / systemd / systemd-बैकलाइट
/ Lib / systemd / systemd-binfmt
/ Lib / systemd / systemd-bootchart
/ Lib / systemd / systemd-बस-proxyd
/ Lib / systemd / systemd-coredump
/ Lib / systemd / systemd-cryptsetup
/ Lib / systemd / systemd-ऍफ़एससीके
/ Lib / systemd / systemd-hostnamed
/ Lib / systemd / systemd-journald
/ Lib / systemd / systemd-पत्रिका-gatewayd
/ Lib / systemd / systemd-पत्रिका-दूरस्थ
/ Lib / systemd / systemd-localed
/ Lib / systemd / systemd-मशीन
/ Lib / systemd / systemd-मॉड्यूल लोड
/ Lib / systemd / systemd-बहु सीट-x
/ Lib / systemd / systemd-networkd
/ Lib / systemd / systemd-networkd-प्रतीक्षा-ऑनलाइन
/ Lib / systemd / systemd-quotacheck
/ Lib / systemd / systemd यादृच्छिक बीज
/ Lib / systemd / systemd-Readahead
/ Lib / systemd / systemd-रिमाउंट-FS
/ Lib / systemd / systemd समाधान किया गया
/ Lib / systemd / systemd-rfkill
/ Lib / systemd / systemd-बंद
/ Lib / systemd / systemd-shutdownd
/ Lib / systemd / systemd-सॉकेट-proxyd
/ Lib / systemd / systemd-timedated
/ Lib / systemd / systemd-timesyncd
/ Lib / systemd / systemd-udevd
/ Lib / systemd / systemd-अद्यतन किया
सिस्टमड स्टार्ट प्रक्रिया को सारांशित करने के लिए, मुझे लगता है कि यह कुछ इस तरह से काम करता है:
- systemd locates
basic.target
(या सभी *.target
फाइलें?)
- निर्भरता के आधार पर हल कर रहे हैं
WantedBy=
, Wants=
, Before=
, After=
... में निर्देशों [Install]
की धारा *.service
और *.target
विन्यास फाइल।
*.service
s जो शुरू होना चाहिए (जो "विशेष" सेवाएं नहीं हैं), [Service]
एक ExecStart=
निर्देश के साथ एक खंड है , जो शुरू करने के लिए निष्पादन योग्य को इंगित करता है।