Inittab-Linux / यूनिक्स कमांड

inittab - sysv- संगत init प्रक्रिया द्वारा उपयोग की जाने वाली inittab फ़ाइल का प्रारूप

विवरण

Inittab फ़ाइल बताती है कि बूटअप पर और सामान्य ऑपरेशन के दौरान कौन सी प्रक्रियाएं शुरू की जाती हैं (जैसे /etc/init.d/boot, /etc/init.d/rc, gettys ...)। इनिट (8) एकाधिक रनलेवल को अलग करता है, जिनमें से प्रत्येक का अपना स्वयं का प्रक्रिया सेट हो सकता है। वैध रनलेवल 0 - 6 प्लस , बी , और सी ऑनडेम प्रविष्टियों के लिए हैं। Inittab फ़ाइल में एक प्रविष्टि निम्न प्रारूप है:

आईडी: रनलेवलों: कार्रवाई: प्रक्रिया

`# 'से शुरू होने वाली रेखाओं को अनदेखा किया जाता है।

आईडी 1-4 अक्षरों का एक अद्वितीय अनुक्रम है जो इनिटैब में प्रविष्टि की पहचान करता है (पुस्तकालयों के साथ संकलित sysvinit के संस्करणों के लिए <5.2.18 या a.out पुस्तकालयों की सीमा 2 वर्ण है)।

नोट: गेटिस या अन्य लॉगिन प्रक्रियाओं के लिए, आईडी फ़ील्ड संबंधित tty का tty प्रत्यय होना चाहिए, उदाहरण के लिए 1 tty1 के लिए । अन्यथा, लॉगिन एकाउंटिंग सही ढंग से काम नहीं कर सकती है।

रनलेवल में रनलेवल सूचीबद्ध होते हैं जिसके लिए निर्दिष्ट कार्रवाई की जानी चाहिए।

कार्रवाई का वर्णन करता है कि कौन सी कार्रवाई की जानी चाहिए।

प्रक्रिया निष्पादित करने के लिए प्रक्रिया निर्दिष्ट करता है। यदि प्रक्रिया फ़ील्ड '+' वर्ण से शुरू होता है, तो init उस प्रक्रिया के लिए utmp और wtmp लेखांकन नहीं करेगा। गेटिस के लिए यह जरूरी है जो अपने स्वयं के utmp / wtmp हाउसकीपिंग करने पर जोर देते हैं। यह एक ऐतिहासिक बग भी है।

रनलेवल फ़ील्ड में विभिन्न रनलेवल के लिए कई वर्ण हो सकते हैं। उदाहरण के लिए, 123 निर्दिष्ट करता है कि प्रक्रिया रनलेवल 1, 2, और 3 में शुरू की जानी चाहिए। ऑनडेम प्रविष्टियों के लिए रनलेवल में , बी , या सी हो सकता हैSysinit , boot , और bootwait प्रविष्टियों के रनलेवल फ़ील्ड को अनदेखा किया जाता है।

जब सिस्टम रनलेवल बदल जाता है, तो किसी भी चल रहे प्रक्रिया जो नए रनलेवल के लिए निर्दिष्ट नहीं हैं, पहले सिगटर के साथ, फिर सिगकिल के साथ मारे जाते हैं।

कार्रवाई क्षेत्र के लिए मान्य कार्य हैं:

respawn

जब भी यह समाप्त हो जाता है (जैसे गेट्टी) प्रक्रिया को पुनरारंभ किया जाएगा।

रुकिए

प्रक्रिया एक बार शुरू की जाएगी जब निर्दिष्ट रनलेवल दर्ज किया जाता है और init इसकी समाप्ति की प्रतीक्षा करेगा।

एक बार

जब निर्दिष्ट रनलेवल दर्ज किया जाता है तो प्रक्रिया को एक बार निष्पादित किया जाएगा।

बूट

सिस्टम बूट के दौरान प्रक्रिया निष्पादित की जाएगी। रनलेवल फ़ील्ड को अनदेखा किया जाता है।

bootwait

प्रक्रिया सिस्टम बूट के दौरान निष्पादित की जाएगी, जबकि init इसकी समाप्ति के लिए इंतजार कर रहा है (उदाहरण / etc / आरसी)। रनलेवल फ़ील्ड को अनदेखा किया जाता है।

बंद

यह कुछ भी नहीं करता है।

मांग पर

जब भी निर्दिष्ट ऑनडेम रनलेवल कहा जाता है, तो ऑनडेम रनलेवल के साथ चिह्नित एक प्रक्रिया निष्पादित की जाएगी। हालांकि, कोई रनलेवल परिवर्तन नहीं होगा ( ऑनडेम रनलेवल 'ए', 'बी', और 'सी') हैं।

initdefault

एक initdefault प्रविष्टि रनलेवल निर्दिष्ट करती है जिसे सिस्टम बूट के बाद दर्ज किया जाना चाहिए। यदि कोई मौजूद नहीं है, तो init कंसोल पर एक रनलेवल के लिए पूछेगा। प्रक्रिया क्षेत्र को नजरअंदाज कर दिया जाता है।

sysinit

सिस्टम बूट के दौरान प्रक्रिया निष्पादित की जाएगी। इसे किसी भी बूट या बूटवाइट प्रविष्टियों से पहले निष्पादित किया जाएगा। रनलेवल फ़ील्ड को अनदेखा किया जाता है।

powerwait

जब बिजली गिर जाती है तो प्रक्रिया को निष्पादित किया जाएगा। कंप्यूटर से जुड़े यूपीएस से बात करने वाली प्रक्रिया द्वारा इनिट को आमतौर पर इसके बारे में सूचित किया जाता है। जारी रखने से पहले प्रक्रिया समाप्त होने की प्रतीक्षा करेगा।

बिजली चले जाना

पावरवेट के लिए , सिवाय इसके कि init प्रक्रिया के पूरा होने की प्रतीक्षा नहीं करता है।

powerokwait

इस प्रक्रिया को जल्द ही निष्पादित किया जाएगा जैसे कि init को सूचित किया गया है कि शक्ति बहाल कर दी गई है।

powerfailnow

इस प्रक्रिया को तब निष्पादित किया जाएगा जब init को बताया गया है कि बाहरी यूपीएस की बैटरी लगभग खाली है और बिजली असफल हो रही है (बशर्ते बाहरी यूपीएस और निगरानी प्रक्रिया इस स्थिति का पता लगाने में सक्षम हो)।

ctrlaltdel

जब प्रक्रिया को SIGINT सिग्नल प्राप्त होता है तो प्रक्रिया निष्पादित की जाएगी। इसका मतलब है कि सिस्टम कंसोल पर किसी ने CTRL-ALT-DEL कुंजी संयोजन दबाया है। आम तौर पर एकल उपयोगकर्ता स्तर में या मशीन को रीबूट करने के लिए किसी प्रकार के शटडाउन को निष्पादित करना चाहता है।

kbrequest

प्रक्रिया को निष्पादित किया जाएगा जब init कीबोर्ड हैंडलर से एक सिग्नल प्राप्त करता है कि कंसोल कीबोर्ड पर एक विशेष कुंजी संयोजन दबाया गया था।

इस फ़ंक्शन के लिए दस्तावेज़ अभी तक पूर्ण नहीं है; kbd-x.xx संकुल में अधिक दस्तावेज मिल सकते हैं (सबसे हाल ही में इस लेखन के समय kbd-0.94 था)। असल में आप कुछ कीबोर्ड संयोजन को "कीबोर्ड सिग्नल" एक्शन में मैप करना चाहते हैं। उदाहरण के लिए, इस उद्देश्य के लिए Alt-Uparrow को मैप करने के लिए अपनी कीमैप्स फ़ाइल में निम्न का उपयोग करें:

alt keycode 103 = कीबोर्ड सिग्नल

उदाहरण

यह एक inittab का एक उदाहरण है जो पुराने लिनक्स inittab जैसा दिखता है:

# लिनक्स आईडी के लिए inittab: 1: initdefault: rc :: bootwait: / etc / rc 1: 1: respawn: / etc / getty 9600 tty1 2: 1: respawn: / etc / getty 9600 tty2 3: 1: respawn: / आदि / गेट्टी 9600 tty3 4: 1: respawn: / etc / getty 9600 tty4

यह inittab फ़ाइल बूट के दौरान / etc / rc निष्पादित करता है और tty1-tty4 पर gettys शुरू होता है।

विभिन्न रनलेवल के साथ एक और विस्तृत inittab (अंदर टिप्पणियां देखें):

# आईडी में चलाने के लिए स्तर: 2: initdefault: # किसी और चीज से पहले सिस्टम प्रारंभिकरण। si :: sysinit: /etc/rc.d/bcheckrc # रनलेवल 0,6 रुक गया है और रीबूट है, 1 रखरखाव मोड है। l0: 0: प्रतीक्षा करें: /etc/rc.d/rc.halt l1: 1: प्रतीक्षा करें: /etc/rc.d/rc.single l2: 2345: प्रतीक्षा करें: /etc/rc.d/rc.multi l6: 6: प्रतीक्षा करें: /etc/rc.d/rc.reboot # "3 उंगली सलाम" पर क्या करना है। ca :: ctrlaltdel: / sbin / shutdown -t5 -rf अब # रनलेवल 2 और 3: कंसोल पर गेटी, लेवल 3 मॉडेम पोर्ट पर गेट्टी भी। 1: 23: respawn: / sbin / getty tty1 वीसी लिनक्स 2: 23: respawn: / sbin / getty tty2 वीसी लिनक्स 3: 23: respawn: / sbin / getty tty3 वीसी लिनक्स 4: 23: respawn: / sbin / getty tty4 वीसी लिनक्स एस 2: 3: respawn: / sbin / uugetty ttyS2 एम 1 9 200

यह भी देखें

init (8), telinit ( 8)

महत्वपूर्ण: यह देखने के लिए मैन कमांड ( % man ) का उपयोग करें कि आपके विशेष कंप्यूटर पर कमांड का उपयोग कैसे किया जाता है।