लिनक्समा इन्टिआण्ड कसरी प्रयोग गर्ने

इनिट सबै प्रक्रियाहरूको अभिभावक हो। यसको मुख्य भूमिका फाइल / etc / inittab मा भण्डार गरिएका स्क्रिप्टबाट प्रक्रियाहरू सिर्जना गर्ने हो ( इनिटाब (5) हेर्नुहोस्। यो फाईल सामान्यतया प्रविष्टिहरू छन् जुन इन्टिनमा प्रत्येक रेखामा गीता एस स्पन गर्नको लागी प्रयोगकर्ताहरूले लग इन गर्न सक्छन्। यो पनि कुनै पनि प्रणाली द्वारा आवश्यक स्वतन्त्र प्रक्रियाहरू नियन्त्रण गर्दछ।

Runlevels

एक रनलेवल प्रणालीको सफ्टवेयर कन्फिगुरेसन हो जसले केवल प्रक्रियाहरूको अवस्थित समूहको मात्र अनुमति दिन्छ। यी प्रत्येक रनलेभलहरूको लागि इनिटद्वारा उत्पन्न प्रक्रियाहरू / etc / inittab फाइलमा परिभाषित गरिन्छ। इनट आठ आठ रनलेभल: 0-6एस वा एसमा हुन सक्छ। रनलेभले विशेषाधिकार प्राप्त प्रयोगकर्ता टेलिनिटमार्फत परिवर्तन गरेको छ, जुन इन्टिट गर्न उपयुक्त सिग्नलहरू पठाउँछ, यसलाई परिवर्तन गर्ने जुन परिवर्तन गर्न को लागी।

Runlevels 0 , 1 , र 6 आरक्षित छन्। प्रणालीलाई रोक्न Runlevel 0 प्रयोग गरिन्छ, रनलेभ 6 प्रणाली रिबुट गर्नको लागि प्रयोग गरिन्छ, र प्रणाली एकल एकल मोडमा डाउन गर्न को लागी रनलेभ 1 प्रयोग गरिन्छ। रनलेभ एस एस वास्तवमा प्रत्यक्ष रूपमा प्रयोग हुने छैन, तर बढी रनलेभेल प्रविष्ट गर्दा लिपिहरूका लागि थप। यसका बारे थप जानकारीको लागि, बन्द (8) र इनटिब (5) को म्याग्दी हेर्नुहोस्।

रनलेभल 7-9 पनि मान्य छन्, तथापि वास्तवमा दस्तावेज छैन। यो किनभने किनभने "परम्परागत" युनिक्स विरूद्धहरूले तिनीहरूलाई प्रयोग गर्दैनन्। यदि तपाईं उत्सुक हुनुहुन्छ भने, रनलेभर्स एसयो वास्तवमा एउटै हो। आन्तरिक रूपमा एउटै रनलेवलका लागि उपनामहरू छन्।

बुलेटिङ

कर्नेल बुट अनुक्रमको अन्तिम चरणको रूपमा इनिटमा आचरण पछि , यो इन्टिडेबल्ट प्रविष्टि ( इन्टिब्याब (5)) को प्रविष्टि हो कि हेर्न फाइल / etc / inittab हेर्दछInitdefault प्रविष्टिले प्रणालीको सुरुवात रनलेवललाई निर्धारण गर्छ। यदि कुनै पनि प्रविष्टि (वा कुनै / etc / inittab सबै) छैन, प्रणाली कंसोलमा एक रनलेवल प्रविष्टि गर्नुपर्छ।

रनलेभ एस एस प्रणालीलाई एकल प्रयोगकर्ता मोडमा ल्याउछ र एक / etc / inittab फाइलको आवश्यकता पर्दैन। एकल प्रयोगकर्ता मोडमा, root shell खोल्नुहोस् / dev / console मा

एकल प्रयोगकर्ता मोडमा प्रवेश गर्दा, Init ले कन्सोलको ioctl (2) राज्यों /etc/ioctl.save बाट पढ्छ । यदि यो फाइल अवस्थित छैन भने, Init 9 900 बुडमाCLOCAL सेटिङको साथ रेखालाई सुरू गर्दछ। जब इन्ट पत्ति एकल प्रयोगकर्ता मोडमा, यो फाइलमा कन्सोलको ioctl सेटिङहरू भण्डारण गर्छ, त्यसैले यसले अर्को एकल-प्रयोगकर्ता सत्रको लागि पुनः प्रयोग गर्न सक्दछ।

पहिलो पटक बहु बहु प्रयोगकर्ता मोडमा प्रवेश गर्दा, प्रयोगकर्ताहरूले लग इन गर्न सक्नु अघि फाइल प्रणाली माउन्ट गर्न बुटबुटविट प्रविष्टिहरू प्रदर्शन गर्दछ। त्यसपछि सबै प्रविष्टिहरू रनलेभसँग मेल खाने प्रक्रियामा छन्।

नयाँ प्रक्रिया सुरु गर्दा, इन्टिनेट पहिलो जाँच गर्दछ कि फाइल / etc / initscript अवस्थित छ। यदि यसले गर्दछ, यो प्रक्रिया सुरु गर्न यो स्क्रिप्ट प्रयोग गर्दछ।

प्रत्येक समय बच्चा समाप्त हुन्छ, इन्टिटले तथ्य र यसको कारण / var / run / utmp/ var / log / wtmp मा मृत्युको रेकर्ड गर्दछ , प्रदान गरिएको छ कि यी फाइलहरू अवस्थित छन्।

रनलेभल परिवर्तन गर्दै

यो निर्दिष्ट सबै प्रक्रियाहरू उत्पन्न भएपछि, इन्टिट यसको मृत्युको प्रक्रियामा एक मृत्युको प्रक्रिया, एक पावरफेल सिग्नलको लागि, वा प्रणालीको रनलेभल परिवर्तन गर्न टेलिनिट द्वारा सिग्नल सम्मको संकेत गर्दछ। जब माथिको तीन अवस्थाहरू मध्ये एक हुन्छ तब, यो / etc / inittab फाइल पुन: जाँच गर्दछ। कुनै पनि समयमा यस फाइलमा नयाँ प्रविष्टिहरू थप्न सकिन्छ। यद्यपि, init अझै पनि माथिको तीन अवस्थाहरू अवस्थित हुनको लागि पर्ख्छ। तत्काल प्रतिक्रिया प्रदान गर्न, टेलिनिट क्यू वा कमाण्ड इन्ण्डले जागिर गर्न सक्छ / etc / inittab फाइल पुन: जाँच गर्न।

यदि इनित एकल प्रयोगकर्ता मोडमा छैन र पावरफेल सिग्नल प्राप्त गर्दछ (SIGPWR), यसले फाइल / etc / powerstatus पढ्छ। त्यसपछि यो फाइलको सामग्रीको आधारमा एउटा आदेश सुरु हुन्छ:

एफ (एआईएल)

पावर असफल भयो, यूपीएसले शक्ति प्रदान गर्दैछ। PowerwaitPowerfail प्रविष्टिहरू कार्यान्वयन गर्नुहोस्।

ठिक छ)

बिजुली पुनर्स्थापित गरिएको छ, पावरकोट प्रविष्टिहरू कार्यान्वयन गर्दछ।

एल (ओडब्ल्यू)

बिजुली असफल भयो र UPS सँग एक कम ब्याट्री छ। Powerfailnow प्रविष्टिहरू कार्यान्वयन गर्नुहोस्।

यदि / etc / powerstatus अवस्थित छैन वा केहि अन्य समावेश गर्दछ भने अक्षर एफ , वा एल , इनिटले व्यवहार गर्दछ यदि यसले अक्षर एफ पढेको छ।

SIGPWR को प्रयोग र / etc / powerstatus हतोत्साहित छ। कसैलाई इन्ट्याक्ट गर्न चाहानुहुन्छ / dev / initctl नियन्त्रण च्यानल प्रयोग गर्नुपर्छ - यस बारे थप कागजातहरूको लागि साइसिभिन प्याकेजको स्रोत कोड हेर्नुहोस्।

जब रनलेवल परिवर्तन गर्न इन्टि अनुरोध गरिन्छ, यसले नयाँ सिलेवलमा अपरिभाषित सबै प्रक्रियाहरूमा चेतावनी सिग्नल SIGTERM पठाउँदछ। यो फेरि SIGKILL सिग्नल मार्फत यी प्रक्रियाहरूलाई टाढाको रूपमा समाप्त गर्न 5 सेकेन्ड पर्ख्छ। ध्यान दिनुहोस् कि इनit मानिन्छ कि यी सबै प्रक्रियाहरू (र तिनीहरूका सन्तानहरू) एउटै प्रक्रिया समूहमा रहन्छन् जुन मूल रूपमा तिनीहरूको लागि सिर्जना गरिएको छ। यदि कुनै प्रक्रिया यसको प्रक्रिया समूह सम्बद्धता परिवर्तन गर्दछ भने यसले यी संकेतहरू प्राप्त गर्दैन। त्यस्ता प्रक्रियाहरू अलग हुनु पर्दछ।

Telinit

/ sbin / telinit / sbin / init सँग जोडिएको छ। यो एक-क्यारेक्टर तर्क र उपयुक्त क्रियाकलाप गर्न संकेत इन्टिट लिन्छ। निम्न तर्कले टेलिभिटका लागि निर्देशनको रूपमा सेवा गर्दछ:

0 , 1 , 2 , 3 , 4 , 5 वा 6

निर्दिष्ट रन स्तरमा स्विच गर्न इन्निलाई भन्नुहोस्।

a , b , c

इन्टिटलाई केवल उन / etc / inittab फाइल प्रविष्टिहरु लाई रनलेभेल a , b या c मा प्रक्रिया गर्न भन्नुहोस्।

क्यू अथवा क्यू

/ etc / inittab फाइल पुन: परीक्षण गर्न इन्टिटलाई भन्नुहोस्।

एस या एस

एकल प्रयोगकर्ता मोडमा स्विच गर्न इन्निलाई भन्नुहोस्।

यू वा तिमी

आफैलाई पुन: निष्पादित गर्न इन्टिटलाई भन्नुहोस् (राज्य संरक्षण)। कुनै पनि पुन: परीक्षण / etc / inittab फाइल हुन्छ। रन स्तर Ss12345 मध्ये एक हुनुपर्दछ , अन्यथा अनुरोध चुपचाप बेवास्ता गरिनेछ।

telinit पनि इन्ट गर्न सक्छ कि प्रक्रियाहरू सिगटर र सिग्निल सिग्नलहरू पठाउन बीचमा कति पर्खाइ पर्दछ। पूर्वनिर्धारित 5 सेकेन्ड हो, तर यो -t सेकेन्ड विकल्पसँग परिवर्तन गर्न सकिन्छ।

टेलिनिट केवल प्रयोगकर्ताहरू द्वारा उपयुक्त विशेषाधिकारको साथ बोलाइन्छ।

इनिट बाइनरी जाँच यदि यो इन्टिभेस आईडी देखेर इनिट वा टेलिनिट छ भने; वास्तविक इनिट को प्रक्रिया आइडी संधै 1 हो । यसबाट यो टेलिनिटमा कल गर्नुको सट्टा सर्टकटको रूपमा सट्टा प्रयोग गर्न सक्दछ।