ऐसा प्रतीत होता है systemd गर्म नया है init खंड पर प्रणाली, के रूप में ही कल का नवाब कुछ साल पहले किया गया था। प्रत्येक के लिए पेशेवरों / विपक्ष क्या हैं? इसके अलावा, प्रत्येक अन्य init सिस्टम की तुलना कैसे करता है?
ऐसा प्रतीत होता है systemd गर्म नया है init खंड पर प्रणाली, के रूप में ही कल का नवाब कुछ साल पहले किया गया था। प्रत्येक के लिए पेशेवरों / विपक्ष क्या हैं? इसके अलावा, प्रत्येक अन्य init सिस्टम की तुलना कैसे करता है?
जवाबों:
यहां अधिकांश उत्तर पांच साल पुराने हैं इसलिए यह कुछ अपडेट के लिए समय है।
उबंटू डिफ़ॉल्ट रूप से अपस्टार्ट का उपयोग करता था लेकिन उन्होंने पिछले साल इसे सिस्टमड के पक्ष में छोड़ दिया - देखें:
इसके कारण उबंटू विकी पर उपस्टार्ट उपयोगकर्ताओं के लिए एक अच्छा लेख सिस्टमड है - अपस्टार्ट और सिस्टमड के बीच बहुत विस्तृत तुलना और अपस्टार्ट से सिस्टमड तक एक संक्रमण गाइड।
(ध्यान दें कि उबंटू विकी के अनुसार आप अभी भी उबंटू के वर्तमान संस्करणों पर डिफ़ॉल्ट रूप से इंस्टॉल करके upstart-sysv
और चलाकर चला सकते हैं sudo update-initramfs -u
लेकिन सिस्टमड प्रोजेक्ट के दायरे को देखते हुए मुझे नहीं पता कि यह कैसे काम करता है, या सिस्टमड है या नहीं स्थापना रद्द करना संभव है।)
नीचे दिए गए कमांड और लिपियों में से अधिकांश जानकारी को उस लेख में उपयोग किए गए कुछ उदाहरणों से अनुकूलित किया गया है (जो कि क्रिएटिव कॉमन्स एट्रिब्यूशन-शेयरएलाइल 3.0 लाइसेंस के तहत स्टैक एक्सचेंज उपयोगकर्ता योगदान की तरह ही लाइसेंस प्राप्त है )।
यहां सामान्य कमांड और सरल स्क्रिप्ट की त्वरित तुलना है, विस्तृत विवरण के लिए नीचे दिए गए अनुभाग देखें। यह उत्तर उपस्टार्ट-आधारित सिस्टम के पुराने व्यवहार की तुलना सिस्टम-आधारित सिस्टम के नए व्यवहार के साथ कर रहा है, जैसा कि प्रश्न में पूछा गया है, लेकिन ध्यान दें कि "अपस्टार्ट" के रूप में टैग की गई कमांड आवश्यक रूप से अपस्टार्ट-विशिष्ट नहीं हैं - वे अक्सर आदेश हैं कि हर गैर-सिस्टमैड लिनक्स और यूनिक्स प्रणाली के लिए आम हैं।
su
machinectl shell
(नीचे "सु कमांड रिप्लेसमेंट" अनुभाग देखें)
screen
systemd-run --user --scope screen
(नीचे दिए गए अनुभाग "पृष्ठभूमि प्रक्रियाओं की अप्रत्याशित हत्या" देखें)
tmux
systemd-run --user --scope tmux
(नीचे दिए गए अनुभाग "पृष्ठभूमि प्रक्रियाओं की अप्रत्याशित हत्या" देखें)
start foo
systemctl start foo
stop foo
systemctl stop foo
restart foo
systemctl restart foo
initctl list
systemctl status
init-checkconf /etc/init/foo.conf
systemd-analyze verify /lib/systemd/system/foo.service
initctl list-env
systemctl show-environment
initctl set-env foo=bar
systemctl set-environment foo=bar
initctl unset-env foo
systemctl unset-environment foo
अपस्टार्ट में, लॉग सामान्य पाठ फ़ाइलें / var / log / upstart निर्देशिका में होती हैं, इसलिए आप उन्हें हमेशा की तरह संसाधित कर सकते हैं:
cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log
सिस्टमड लॉग में एक आंतरिक बाइनरी प्रारूप (पाठ फ़ाइलों के रूप में नहीं) में संग्रहीत किया जाता है, इसलिए आपको journalctl
उन्हें एक्सेस करने के लिए कमांड का उपयोग करने की आवश्यकता होती है:
sudo journalctl -u foo
sudo journalctl -u foo -f
उदाहरण लिपि में लिखा गया है /etc/init/foo.conf
:
description "Job that runs the foo daemon"
start on runlevel [2345]
stop on runlevel [016]
env statedir=/var/cache/foo
pre-start exec mkdir -p $statedir
exec /usr/bin/foo-daemon --arg1 "hello world" --statedir $statedir
उदाहरण में लिखी गई सिस्टम स्क्रिप्ट/lib/systemd/system/foo.service
:
[Unit]
Description=Job that runs the foo daemon
Documentation=man:foo(1)
[Service]
Type=forking
Environment=statedir=/var/cache/foo
ExecStartPre=/usr/bin/mkdir -p ${statedir}
ExecStart=/usr/bin/foo-daemon --arg1 "hello world" --statedir ${statedir}
[Install]
WantedBy=multi-user.target
एक su
कमांड रिप्लेसमेंट को सिस्टमड में मर्ज किया गया था # 1022
क्योंकि, लेन्नर्ट पोइटरिंग के अनुसार, "सु वास्तव में एक टूटी हुई अवधारणा है" ।
वह बताते हैं कि "आप पहले की तरह su और sudo का उपयोग कर सकते हैं, लेकिन यह उम्मीद न करें कि यह पूरी तरह से काम करेगा " ।
एक समान su
व्यवहार को प्राप्त करने का आधिकारिक तरीका अब है:
machinectl shell
# 825 जारी करने के लिए चर्चा में लेनार्ट पोइटरिंग द्वारा इसे आगे समझाया गया है :
"ठीक है, इस बारे में लंबे समय से चर्चा हुई है, लेकिन समस्या यह है कि सु क्या करना चाहिए यह बहुत अस्पष्ट है। [...] लंबी कहानी संक्षेप: सु वास्तव में एक टूटी हुई अवधारणा है। यह आपको एक तरह का खोल देगा। , और यह उसके लिए उपयोग करने के लिए ठीक है, लेकिन यह एक पूर्ण लॉगिन नहीं है, और एक के लिए गलत नहीं होना चाहिए। " - लेन्नर्ट पोइटरिंग
यह सभी देखें:
जैसे आदेश:
अब अपेक्षा के अनुरूप काम नहीं होगा । उदाहरण के लिए, nohup
यह सुनिश्चित करने के लिए कि आपके सत्र से लॉग आउट करने के बाद प्रक्रिया चलती रहती है, यह सुनिश्चित करने के लिए एक POSIX कमांड है। यह अब systemd पर काम नहीं करता है। इसके अलावा कार्यक्रमों screen
और जैसे tmux
एक विशेष तरीके से लागू किए जाने की जरूरत है या अन्यथा आप उनके साथ चलने वाली प्रक्रियाओं को मार डाला जाएगा (जबकि उन प्रक्रियाओं को नहीं मारा जा रहा है, आमतौर पर रनिंग स्क्रीन या पहली जगह tmux का मुख्य कारण है)।
यह कोई गलती नहीं है, यह एक जानबूझकर किया गया निर्णय है, इसलिए भविष्य में इसके ठीक होने की संभावना नहीं है। इस मुद्दे के बारे में लेनार्ट पोइटरिंग ने यही कहा है :
मेरे विचार में यह वास्तव में UNIX के लिए काफी अजीब था कि यह डिफ़ॉल्ट रूप से उपयोगकर्ता कोड को लॉगआउट के बाद अप्रतिबंधित रहने देता है। कई ओएस लोगों के बीच अब उम्र के लिए चर्चा की गई है, कि यह संभव होना चाहिए लेकिन निश्चित रूप से डिफ़ॉल्ट नहीं होना चाहिए, लेकिन किसी ने इसे डिफ़ॉल्ट से एक विकल्प में बदलने के लिए स्विच को फ्लिप करने की अब तक हिम्मत नहीं की। लॉगआउट के बाद उपयोगकर्ता सत्रों की सफाई न करना केवल बदसूरत और कुछ हद तक हैकिश नहीं है, बल्कि एक सुरक्षा समस्या भी है। systemd 230 अब अंत में स्विच को फ़्लिप करता है और अंत में डिफ़ॉल्ट रूप से उपयोगकर्ता द्वारा लॉग आउट करने पर सब कुछ सही ढंग से साफ़ करता है।
अधिक जानकारी के लिए देखें:
एक तरह से systemd पीछे की ओर काम करता है - upstart नौकरियों में जैसे ही वे शुरू कर सकते हैं और systemd नौकरियों में शुरू होता है जब उन्हें करना होता है। दिन के अंत में एक ही नौकरी दोनों प्रणालियों द्वारा शुरू की जा सकती है और बहुत अधिक समान क्रम में, लेकिन आप इसके बारे में सोचते हैं कि यह विपरीत दिशा से बोल रहा है।
यहां बताया गया है कि उपस्टार्ट उपयोगकर्ताओं के लिए Systemd इसे कैसे बताता है:
शुरुआती प्रक्रियाओं (नौकरियों) के लिए अपस्टार्ट का मॉडल "लालची घटना-आधारित" है, अर्थात सभी उपलब्ध नौकरियां जिनके स्टार्टअप की घटनाएं जल्द से जल्द शुरू होती हैं। बूट के दौरान, अपस्टार्ट स्टार्टअप या आरसीएस जैसी कुछ प्रारंभिक घटनाओं को "ट्री रूट" के रूप में संश्लेषित करता है, शुरुआती सेवाएं उन पर शुरू होती हैं, और बाद में सेवाएं तब शुरू होती हैं जब पूर्व चल रहे होते हैं। एक नई नौकरी के लिए केवल अपनी कॉन्फ़िगरेशन फ़ाइल को / etc / init / में सक्रिय होना चाहिए।
प्रक्रिया शुरू करने के लिए systemd का मॉडल (इकाइयाँ) "आलसी निर्भरता-आधारित" है, अर्थात एक इकाई केवल तभी शुरू होगी जब कोई और आरंभिक इकाई उस पर निर्भर होगी। बूट के दौरान, सिस्टमड एक "रूट यूनिट" शुरू करता है (default.target, grub में ओवरराइड किया जा सकता है), जो तब ट्रांसेटिव का विस्तार करता है और इसकी निर्भरता शुरू करता है। एक नई इकाई को सक्रिय होने के लिए खुद को बूट अनुक्रम (आमतौर पर मल्टी-user.target) की एक इकाई की निर्भरता के रूप में जोड़ना होगा।
अब विकिपीडिया के अनुसार कुछ हालिया आंकड़े:
( जानकारी के लिए विकिपीडिया देखें )
अतीत में सिस्टमन से बचने के लिए डेबियन का कांटा प्रस्तावित किया गया है । Devuan जीएनयू + लिनक्स बनाया गया था - बिना systemd डेबियन का एक कांटा (धन्यवाद करने के लिए fpmurphy1 टिप्पणी में यह उनका कहना है के लिए)।
इस विवाद के बारे में अधिक जानकारी के लिए, देखें:
जैसा कि आप में से बहुत से लोग पहले से ही जानते होंगे, इयान जैक्सन द्वारा प्रचारित इनिट जीआर डेबियन वोट, डेबियन की विरासत और उसके उपयोगकर्ताओं को सिस्टम एवलांच से बचाने के लिए उपयोगी नहीं था।
इस स्थिति से सिस्टम पर निर्भरता में ताला लग जाता है जो विकास की स्वतंत्रता को खतरे में डालने वाला है और डेबियन, इसके अपस्ट्रीम और इसके डाउनस्ट्रीम के लिए गंभीर परिणाम हैं।
सीटीटीई एक निर्भरता की अदला-बदली करने और हमें सिस्विनीट पर सिस्टमड की एक सूक्ष्म स्थापना पर समय हासिल करने में कामयाब रहा, लेकिन यहां तक कि यह प्रक्रिया थकावट और नाटक से भरा था। आखिरकार, एक हफ्ते पहले, इयान जैक्सन ने इस्तीफा दे दिया। [...]
मैं तत्काल प्रभाव से तकनीकी समिति से इस्तीफा दे रहा हूं।
हालांकि यह महत्वपूर्ण है कि परियोजना के 30-40% के विचार जो मेरे साथ सहमत हैं, उन्हें टीसी पर प्रतिनिधित्व करना जारी रखना चाहिए, मैं खुद स्पष्ट रूप से बहुत विवादास्पद हूं इस बिंदु पर ऐसा करने के लिए एक आंकड़ा। मुझे इस ओर कदम बढ़ाने की कोशिश करनी चाहिए कि परियोजना के शासन के बारे में बातचीत किस हद तक व्यक्तिगत है। [...]
देवन के लिए डिफ़ॉल्ट इनिट प्रणाली के रूप में उपयोग करने के निर्णय पर विवाद से देवुआन पैदा हुए थे। Systemd पर आधिकारिक डेबियन स्थिति दावा है कि से भरा हुआ है दूसरों खारिज किया । इच्छुक पाठक इस गर्म विषय पर द सिस्टम विवाद में चर्चा जारी रख सकते हैं । हालाँकि हम आपको अपने सिर को ठंडा रखने और अपनी आवाज को सभ्य बनाने के लिए प्रोत्साहित करते हैं। Devuan में हम उन्हें वापस देखने की तुलना में गलत प्रोग्रामिंग में अधिक रुचि रखते हैं। [...]
सिस्टम विवाद के लिए समर्पित कुछ वेबसाइट और लेख बनाए गए हैं:
नहीं है एक बहुत हैकर समाचार पर दिलचस्प चर्चा का:
अन्य विकृतियों में भी इसी तरह की प्रवृत्ति देखी जा सकती है:
upstart , DOTADIW के यूनिक्स दर्शन का अनुसरण करता है - "डू वन थिंग एंड डू इट वेल।" यह पारंपरिक इनिट डेमॉन के लिए एक प्रतिस्थापन है। यह सेवाओं को शुरू करने और रोकने के अलावा कुछ नहीं करता है। अन्य कार्यों को अन्य विशिष्ट उपप्रणालियों को सौंप दिया जाता है।
systemd इससे बहुत अधिक काम करता है। सेवाओं को शुरू करने और रोकने के अलावा, यह पासवर्ड, लॉगिन, टर्मिनल, पावर मैनेजमेंट, फ़ैक्टरी रीसेट, लॉग प्रोसेसिंग, फ़ाइल सिस्टम माउंट पॉइंट, नेटवर्किंग और भी बहुत कुछ प्रबंधित करता है - कुछ सुविधाओं के लिए NEWS फ़ाइल देखें ।
सिस्टम के लिए एक परिप्रेक्ष्य के अनुसार क्या हासिल किया गया है, और 2014 में GNOME.asia में लेनार्ट पोएटरिंग द्वारा लीज़ अहेड प्रस्तुति, यहाँ सिस्टमड के मुख्य उद्देश्य हैं, जो पहले से ही कवर किए गए थे और जो अभी भी प्रगति पर थे:
हमारे उद्देश्य
- एक प्रतिस्पर्धी जनरल प्रयोजन ऑपरेटिंग सिस्टम में बिट्स के बैग से लिनक्स को चालू करना।
- वितरण के बीच इंटरनेट के अगली पीढ़ी के ओएस का निर्माण करना
कोर ओएस में नवीनता वापस लाना
डेस्कटॉप, सर्वर, कंटेनर, एंबेडेड, मोबाइल, क्लाउड, क्लस्टर,। । । ये क्षेत्र आपके विचार से कहीं अधिक करीब हैं
- व्यवस्थापक जटिलता को कम करना, पर्यवेक्षण के बिना विश्वसनीयता
- सब कुछ आत्मनिरीक्षण
- ऑटो डिस्कवरी, प्लग एंड प्ले प्रमुख है
- हम उन चीजों को ठीक करते हैं जहां वे टूट गए हैं, उन पर कभी टेप न करें
हम पहले से ही क्या कवर करते हैं:
init सिस्टम, जर्नल लॉगिंग, लॉगिन प्रबंधन, डिवाइस प्रबंधन, अस्थायी और वाष्पशील फ़ाइल प्रबंधन, बाइनरी प्रारूप पंजीकरण, बैकलाइट सेव / रिस्टोर, rfkill सेव / रिस्टोर, बूटचार्ट, रीडहेड, एन्क्रिप्टेड स्टोरेज सेटअप, EFI / GPF पार्टीशन डिस्कवरी, वर्चुअल मशीन / कंटेनर पंजीकरण, न्यूनतम कंटेनर प्रबंधन, होस्टनाम प्रबंधन, स्थानीय प्रबंधन, समय प्रबंधन, यादृच्छिक बीज प्रबंधन, sysctl चर प्रबंधन, कंसोल प्रबंधन,। । ।
हम किस पर काम कर रहे हैं:
- नेटवर्क प्रबंधन
- systemd-networkd
- स्थानीय DNS कैश, mDNS उत्तरदाता, LLMNR उत्तरदाता, DNSSEC सत्यापन
- कर्नेल में आई.पी.सी.
- kdbus, एसडी-बस
- NTP के साथ समय सिंक्रनाइज़ेशन
- systemd-timesyncd
- कंटेनरों के साथ अधिक एकीकरण
- सेवाओं की सैंडबॉक्सिंग
- ऐप्स का सैंडबॉक्सिंग
- ओएस छवि प्रारूप
- कंटेनर छवि प्रारूप
- ऐप छवि प्रारूप
- ऑटो-डिस्कवरी के साथ जीपीटी
- स्टेटलेस सिस्टम, इंस्टेंटेबल सिस्टम, फैक्ट्री रीसेट
- / usr OS है
- / etc है (वैकल्पिक) कॉन्फ़िगरेशन
- / var (वैकल्पिक) स्थिति है
- परमाणु नोड आरंभीकरण और अद्यतन
- बादल के साथ एकीकरण
- नोड्स के पार सेवा प्रबंधन
- सत्यापन योग्य OS छवियां
- फर्मवेयर के लिए सभी तरह से
- बूट लोड हो रहा है
जैसा कि fpmurphy1 ने टिप्पणियों में कहा, "यह ध्यान दिया जाना चाहिए कि सिस्टमड ने पिछले कुछ वर्षों में अपने काम के दायरे का विस्तार केवल सिस्टम स्टार्टअप से परे किया है।"
मैंने यहाँ अधिकतर प्रासंगिक जानकारी को शामिल करने की कोशिश की। यहाँ मैं उपस्टार्ट और सिस्टमड के सामान्य फीचर्स की तुलना कर रहा हूँ जब इनिट सिस्टम को प्रश्न के रूप में इस्तेमाल किया जाता है और मैं केवल सिस्टमड के फीचर्स का उल्लेख करता हूं जो एक इनिट सिस्टम के दायरे से परे जाते हैं क्योंकि इनकी तुलना स्टार्टअप से नहीं की जा सकती है, लेकिन उनकी उपस्थिति महत्वपूर्ण है उन दो परियोजनाओं के बीच अंतर को समझने के लिए। अधिक जानकारी के लिए संबंधित दस्तावेज़ की जाँच की जानी चाहिए।
अधिक जानकारी पर पाया जा सकता है:
LinOxide टीम एक पैदा कर दी है systemd बनाम SysV Init लिनक्स cheatsheet ।
service <foo> start/stop/restart/status
अभी भी ठीक काम करते हैं। अधिकांश यूनिक्स सॉफ़्टवेयर की तरह, सिस्टमड अच्छी तरह से ज्ञात चूक के लिए कमांड संगतता प्रदान करता है।
दोनों upstart और systemd पारंपरिक SysV init सिस्टम की सीमाओं के साथ कुछ समस्याओं को हल करने का प्रयास कर रहे हैं। उदाहरण के लिए, कुछ सेवाओं को अन्य सेवाओं के बाद शुरू करने की आवश्यकता होती है (उदाहरण के लिए, आप नेटवर्क चलने तक NFS फाइल सिस्टम को माउंट नहीं कर सकते हैं), लेकिन SysV में एकमात्र तरीका है कि rc # .d निर्देशिका में लिंक सेट करना है। ऐसा है कि एक दूसरे से पहले है। उस पर जोड़ें, आपको बाद में सब कुछ फिर से नंबर करने की आवश्यकता हो सकती है जब निर्भरता जोड़ी जाती है या बदल जाती है। अपस्टार्ट और सिस्टमड में आवश्यकताओं को परिभाषित करने के लिए अधिक बुद्धिमान सेटिंग्स हैं। इसके अलावा, इस तथ्य के साथ समस्या है कि सब कुछ किसी प्रकार की एक शेल स्क्रिप्ट है, और हर कोई सबसे अच्छा इनिट स्क्रिप्ट नहीं लिखता है। यह स्टार्टअप की गति को भी प्रभावित करता है।
मैं देख सकता हूँ systemd के कुछ लाभ:
एक नुकसान मुझे पता है कि सिस्टमड के सॉकेट / एफएच उपदेश का लाभ उठाने के लिए, कई डेमों को पैच करना होगा ताकि सिस्टमएचडी द्वारा उन्हें एफएच पास किया जा सके।
सॉ systemd
ने आज आर्क जनरल एमएल पर उल्लेख किया । तो इस पर पढ़िए। लिनक्स प्रौद्योगिकी के लिए H ऑनलाइन हमेशा एक बेहतरीन स्रोत है और जहाँ मुझे SysV Init और Upstart विकल्प के रूप में Systemd पर शोध शुरू करने के लिए मेरी जगह मिली । हालाँकि एच ऑनलाइन लेख (इस मामले में) बहुत उपयोगी नहीं है, इसके पीछे का वास्तविक उपयोग यह है कि यह उपयोगी रीड्स के लिंक देता है।
असली जवाब सिस्टमड की घोषणा में है । जो SysV initd के साथ क्या गलत है के कुछ महत्वपूर्ण बिंदु देता है, और नई प्रणालियों को क्या करने की आवश्यकता है
कम शुरू करने के लिए।
और समानांतर में अधिक शुरू करने के लिए।
ऐसा करने के लिए इसकी प्रमुख योजना केवल सेवाओं को शुरू करने के लिए ही लगती है, और वे उस सेवा के लिए एक सॉकेट शुरू करते हैं, ताकि जिस सेवा की आवश्यकता है, वह डेमॉन पूरी तरह से ऑनलाइन होने से बहुत पहले निर्मित सॉकेट से जुड़ सके। जाहिरा तौर पर एक सॉकेट बफ़र किए गए डेटा की एक छोटी राशि को बनाए रखेगा जिसका अर्थ है कि अंतराल के दौरान कोई भी डेटा नहीं खो जाएगा, डेमन के ऑनलाइन होते ही इसे संभाल लिया जाएगा।
ऐसा लगता है कि योजना का एक और हिस्सा फाइलसिस्टम को क्रमबद्ध नहीं करना है, लेकिन इसके बजाय उन लोगों की मांग पर माउंट करें, जिस तरह से आप अपने इंतजार नहीं कर रहे हैं /home/
, आदि ( /etc
माउंट करने के लिए भ्रमित नहीं होना ), और / या fsck
जब आप हो सकते हैं। के रूप में डेमॉन शुरू करने /
और /var/
आदि, पहले से ही घुड़सवार हैं। इसने कहा कि यह इस तक ऑटोफ का उपयोग करने वाला था।
.desktop
स्क्रिप्ट के प्रतिस्थापन के रूप में स्टाइल इनिट डिस्क्रिप्टर बनाने का भी इसका लक्ष्य है । यह धीमी sh
प्रक्रियाओं के टन और ऐसी चीज़ों से प्रक्रियाओं के और भी अधिक कांटे को रोक देगा sed
और grep
जिन्हें अक्सर शेल स्क्रिप्ट में उपयोग किया जाता है।
वे कुछ सेवाओं को तब तक शुरू नहीं करने की योजना बनाते हैं जब तक कि उनके लिए नहीं पूछा जाता है, और शायद उन्हें भी बंद कर दें यदि उन्हें अब ज़रूरत नहीं है, ब्लूटूथ मॉड्यूल, और डेमन की आवश्यकता केवल तब होती है जब आप उदाहरण के लिए ब्लूटूथ डिवाइस का उपयोग कर रहे हों। एक और उदाहरण ssh डेमॉन है। यह उस तरह की चीज है जो अयोग्य है। व्यक्तिगत रूप से मुझे यकीन नहीं है कि मुझे यह पसंद है, क्योंकि इसका मतलब हो सकता है जब मुझे उनकी आवश्यकता होती है, और ssh के मामले में मुझे लगता है कि इसका मतलब एक संभावित सुरक्षा भेद्यता है, अगर मेरे इनटीडी से समझौता किया गया तो पूरी व्यवस्था होगी। हालाँकि, मुझे सूचित किया गया है कि इस प्रणाली को भंग करने के लिए इसका उपयोग करना संभव नहीं है और अगर मैं चाहूं कि मैं इस सुविधा को प्रति सेवा और अन्य तरीकों से अक्षम कर सकता हूं।
एक अन्य विशेषता स्पष्ट रूप से समय की घटनाओं के आधार पर शुरू करने की क्षमता है, या तो नियमित रूप से निर्धारित अंतराल पर या एक निश्चित समय पर। यह अब क्या crond
और किसके जैसा है atd
। हालांकि मुझे बताया गया था कि यह उपयोगकर्ता "क्रोन" का समर्थन नहीं करेगा। व्यक्तिगत रूप से यह सबसे व्यर्थ बात लगती है। मुझे लगता है कि यह उन लोगों द्वारा लिखा / सोचा गया था जो बहुउपयोगी वातावरण में काम नहीं करते हैं, उपयोगकर्ता क्रोन के लिए बहुत उद्देश्य नहीं है यदि आप सिस्टम पर एकमात्र उपयोगकर्ता हैं, जो रूट के रूप में नहीं चल रहे हैं। मैं रोजाना मल्टीसियर सिस्टम पर काम करता हूं, और नियम हमेशा उपयोगकर्ता स्क्रिप्ट को उपयोगकर्ता के रूप में चलाता है। लेकिन शायद मेरे पास वह दूरदर्शिता नहीं है जो वे करते हैं, और यह किसी भी तरह से ऐसा नहीं करेगा ताकि मैं भाग न सकूं crond
या atd
ऐसा न हो, जिससे मुझे किसी को भी तकलीफ न हो, लेकिन मुझे लगता है कि डेवलपर्स।
सिस्टमड का बड़ा नुकसान यह है कि इसका पूरा फायदा उठाने के लिए कुछ डेमों को संशोधित करना होगा। वे अब काम करेंगे, लेकिन वे बेहतर काम करेंगे अगर वे विशेष रूप से इसके सॉकेट मॉडल के लिए लिखे गए थे।
यह अधिकांश भाग के लिए लगता है कि सिस्टमस्टॉप के लोगों की समस्या के लिए अपस्टार्ट घटना प्रणाली है, और उनका मानना है कि यह समझ में नहीं आता है या अनावश्यक नहीं है। शायद उनके शब्दों ने इसे सर्वश्रेष्ठ बना दिया।
या इसे और सरल बनाने के लिए: तथ्य यह है कि उपयोगकर्ता ने बस डी-बस शुरू किया, यह किसी भी तरह से एक संकेत नहीं है कि NetworkManager को भी शुरू किया जाना चाहिए (लेकिन यह उपस्टार्ट क्या करेगा)। यह दूसरे तरीके से सही है: जब उपयोगकर्ता NetworkManager से पूछता है, तो यह निश्चित रूप से एक संकेत है कि D-Bus को भी शुरू किया जाना चाहिए (जो कि निश्चित रूप से अधिकांश उपयोगकर्ता अपेक्षा करेंगे, ठीक है?)।
एक अच्छी init प्रणाली को केवल वही शुरू करना चाहिए जिसकी आवश्यकता है, और वह ऑन-डिमांड है। या तो आलसी या समानांतर और अग्रिम में। हालाँकि यह आवश्यकता से अधिक शुरू नहीं होना चाहिए, विशेष रूप से सब कुछ स्थापित नहीं जो उस सेवा का उपयोग कर सके।
जैसा कि मैंने पहले ही कहा है कि यह प्रणाली की घोषणा में अधिक व्यापक रूप से चर्चा की गई है ।
अच्छी तरह से आप में से एक बात भूल गया cgroups में प्रक्रियाओं का संगठन है ।
तो अगर systemd ने एक चीज शुरू की, तो वह इस चीज को अपने cgroup में रखेगा और उस cgroup से बचने की प्रक्रिया के लिए कोई (unpriviledged) माध्य नहीं है। यहाँ उस के परिणाम हैं:
पहले डिज़ाइन ड्राफ्ट (और मौजूदा इनिट सिस्टम की एक विस्तृत समालोचना, जिसमें अपस्टार्ट शामिल हैं, और कैसे सिस्टमड उन्हें ठीक करने का प्रस्ताव करता है) के साथ शुरू करते हुए, सिस्टमड पर बहुत विस्तृत नज़र के लिए, इसके होम पेज पर जाएँ । समय के साथ, LWN में प्रकाशित स्टार्टअप पर कई लेख आए हैं । बस सलाह दी जाती है कि सिस्टमड (या पल्सीडियो) का कोई भी उल्लेख न होने वाले फ़्लेमर्स को ट्रिगर करे।
IMVHO (और एक फेडोरा उपयोगकर्ता के रूप में) मैं इससे बहुत खुश हूं। वर्तमान लाइनक्स सिस्टम की जटिलता को संभालने के लिए इस लाइन में कुछ समय के लिए अतिदेय था। फेडोरा ने कुछ समय के लिए अपस्टार्ट का उपयोग किया, लेकिन यह sysvinit के लिए फैंसी प्रतिस्थापन होने के चरण से बाहर कभी नहीं निकला, ज्यादातर अपरिवर्तित init स्क्रिप्ट चला रहा था। बूट कॉन्फ़िगरेशन को सरल बनाने का इसका वादा फिर से लागत पर आता हैमैन्युअल रूप से अन्योन्याश्रितियों की स्थापना, और यह सिर्फ काम नहीं करता है। सिस्टमड आंकड़े अपने आप ही निर्भर हो जाते हैं (या निर्भरता की परवाह किए बिना सामान शुरू करने की अनुमति देता है, वे खुद को छांट लेते हैं)। एक और बड़ा फायदा (कुछ का कहना है कि यह एक गंभीर नुकसान है) यह है कि यह लिनक्स-विशिष्ट विशेषताओं को हिल्ट (विशेष रूप से cgroups एक डेमन और उसके सभी वंशों को अलग करने की अनुमति देता है) का शोषण करता है, इसलिए संसाधनों की निगरानी करना, उन्हें सीमित करना या उन्हें मारना आसान है एक समूह; वहाँ कई अन्य हैं)।
जर्नलिंग - सिस्टमड का शाब्दिक रूप से WinSXS फ़ोल्डर है जब यह लॉगिंग सामान की बात आती है, तो यह प्रतियों की प्रतियां बनाता है जब तक कि आप मैन्युअल रूप से फ़ाइल के आकार को हटा या कम नहीं करते हैं, यह आपके ड्राइव पर दूर खाने को बनाए रखेगा। मैं इसे बूट लोडर कुकीज़ कहता हूं।