Skip to main content

லினக்ஸ் கட்டளை Init ஐ புரிந்து கொள்ளுங்கள்

Anonim

அதில் உள்ளது அனைத்து லினக்ஸ் செயல்களின் பெற்றோர். கணினி துவங்கும் வரை துவங்குவதற்கான முதல் செயல்முறையாகும், மேலும் கணினி இயங்கும் வரை இயங்கும். இது அனைத்து பிற செயல்களின் மூதாதையர்.

கோப்பு / etc / inittab இல் சேமிக்கப்பட்ட ஒரு ஸ்கிரிப்ட்டிலிருந்து செயல்முறைகளை உருவாக்குவதே அதன் முதன்மை பாத்திரம் ஆகும். இந்த கோப்பு வழக்கமாக உள்ளிடுவதால், பயனர்கள் உள்நுழைக்கும் ஒவ்வொரு வரியும் உள்ளீட்டை உருவாக்குகிறது. இது குறிப்பிட்ட கணினியில் தேவையான தன்னியக்க செயல்முறைகளையும் கட்டுப்படுத்துகிறது.

இயங்குநிலைகளை

ஒரு இயங்குநிலை செயல்முறைகளின் ஒரு தேர்ந்தெடுக்கப்பட்ட குழு மட்டுமே இயக்க அனுமதிக்கும் கணினியின் மென்பொருள் கட்டமைப்பு ஆகும். இந்த runlevels ஒவ்வொன்றிற்கும் Init மூலம் உருவாக்கப்பட்ட செயல்முறைகள் / etc / inittab கோப்பில் வரையறுக்கப்படுகின்றன. Init ஆனது எட்டு ரன்லெல்லில் ஒன்று: 0 முதல் 6 மற்றும் எஸ் அல்லது எஸ். Runlevel ஒரு பயனீட்டாளர் பயனர் Telinit ரன் மூலம் மாற்றப்படுகிறது, இது Init க்கு பொருத்தமான சமிக்ஞைகளை அனுப்புகிறது, இது runlevel ஐ மாற்றுவதாக கூறுகிறது.

Runlevels 0, 1 மற்றும் 6 ஆகியவை ஒதுக்கப்பட்டுள்ளன. கணினியை நிறுத்துவதற்கு ரன்ட்வெல் 0 பயன்படுத்தப்படுகிறது, கணினியை மீண்டும் துவக்குவதற்கு runlevel 6 பயன்படுத்தப்படுகிறது, மேலும் runlevel 1 ஆனது கணினியை ஒற்றை-பயனர் முறையில் பெற பயன்படுத்தப்படுகிறது. இயங்குநிலை 1 ஐ நேரடியாகப் பயன்படுத்த வேண்டும், மாறாக அதற்கு பதிலாக ஓடுபாதை 1 இல் நுழையும் போது இயக்கப்படும் ஸ்கிரிப்டுகள்.

இயங்குநிலை 7 முதல் 9 வரை செல்லுபடியாகும், ஆனால் ஆவணப்படுத்தப்பட்டால் "பாரம்பரிய" யுனிக்ஸ் வகைகள் அவற்றைப் பயன்படுத்தாது. Runlevels S மற்றும் s அதே தான். உட்புறமாக, அவை ஒரே ஓட்டப்பந்தயத்துக்கான மாற்றுப்பெயர்வாகும்.

துவக்குதல்

கர்னல் பூட் காட்சியின் கடைசி கட்டமாக Init அழைக்கப்படுகிறது பின்னர், அது கோப்பு ஒரு நுழைவு இருந்தால் பார்க்க / etc / inittab கோப்பு பார்க்க initdefault . Initdefault நுழைவு கணினியின் தொடக்க ரன்ட்லேவை தீர்மானிக்கிறது. அத்தகைய நுழைவு இல்லை (அல்லது இல்லை / etc / inittab அனைத்திலும்), ஒரு runlevel கணினி பணியகத்தில் உள்ளிட வேண்டும்.

இயங்குநிலை S அல்லது s ஆனது ஒற்றை-பயனர் முறைமைக்கு எடுக்கும் மற்றும் ஒரு / etc / inittab கோப்பு தேவையில்லை. ஒற்றை பயனர் முறையில், / dev / console இல் ரூட் ஷெல் திறக்கப்படுகிறது.

ஒற்றை பயனர் பயன்முறையில் நுழைகையில், /etc/ioctl.save இலிருந்து கன்சோலின் ioctl மாநிலங்களை init படிக்கும். இந்த கோப்பு இல்லையெனில், init 9600 பாட் மற்றும் CLOCAL அமைப்புகளுடன் வரி துவக்கப்படுகிறது. Init ஒற்றை பயனர் பயன்முறையை விட்டுவிட்டால், இந்த கோப்பில் பணியகத்தின் ioctl அமைப்புகளை சேமித்து, அடுத்த ஒற்றை பயனர் அமர்வுக்கு அவற்றை மீண்டும் பயன்படுத்தலாம்.

பல முறை பயன்முறையில் நுழைகையில், Init பயனர்கள் உள்நுழைவதற்கு முன் கோப்பு முறைமைகள் ஏற்ற அனுமதிக்க துவக்க மற்றும் துவக்க உள்ளீடுகளை செய்கிறது. பின்னர், இயங்குநிலைக்கு பொருந்தும் அனைத்து உள்ளீடுகளும் செயலாக்கப்படுகின்றன.

ஒரு புதிய செயல்முறையை துவக்கும் போது, ​​Init முதலில் கோப்பு / etc / initscript உள்ளது என்பதை சரிபார்க்கிறது. அவ்வாறு செய்தால், செயல்முறையைத் தொடங்க இந்த ஸ்கிரிப்டைப் பயன்படுத்துகிறது.

ஒவ்வொரு முறையும் ஒரு குழந்தை முடிவடைகிறது, Init பதிவை உண்மையில் பதிவு செய்கிறது மற்றும் அது / var / run / utmp மற்றும் / var / log / wtmp இல் இறந்த காரணத்தால், இந்த கோப்புகள் உள்ளன.

Runlevels ஐ மாற்றுகிறது

குறிப்பிடப்பட்ட அனைத்து செயல்முறைகளையும் அது உருவாக்கிய பிறகு, இன்ஐடி அதன் இறந்த செயல்களில் ஒன்று இறக்க, ஒரு சக்திவாய்ந்த சமிக்ஞைக்காக காத்திருக்கிறது, அல்லது டெலினைட் முறைமையின் இயங்குநிலை மாற்றுவதற்கு சமிக்ஞையாகும் வரை. இந்த மூன்று நிபந்தனைகளில் ஒன்று ஏற்படும் போது, ​​இது / etc / inittab கோப்பை மீண்டும் பரிசோதிக்கிறது. புதிய உள்ளீடுகள் இந்த கோப்பில் எந்த நேரத்திலும் சேர்க்கப்படும். எனினும், init இன்னும் மேலே மூன்று நிலைமைகளில் ஒன்றுக்காக காத்திருக்கிறது. ஒரு உடனடி பதிலை வழங்க, Telinit Q அல்லது q கட்டளையானது Init ஐ மீண்டும் துவக்க / etc / inittab கோப்பை மீண்டும் பரிசோதிக்கலாம்.

Init ஒற்றை பயனர் முறையில் இல்லை மற்றும் ஒரு powerfail சமிக்ஞையை (SIGPWR) பெறுகிறது என்றால், அது கோப்பு / etc / powerstatus ஐப் படிக்கிறது. இந்த கோப்பின் உள்ளடக்கங்களை அடிப்படையாகக் கொண்ட கட்டளை தொடங்குகிறது:

  • எஃப் (ஏஐஎல்): பவர் தோல்வி, யுபிஎஸ் அதிகாரத்தை வழங்குகிறது. Powerwait மற்றும் powerfail உள்ளீடுகளை இயக்கவும்.
  • சரி): சக்தி மீட்டமைக்கப்பட்டு, அதிகாரவழி உள்ளீடுகளை இயக்கவும்.
  • குறைந்த): சக்தி தோல்வி, மற்றும் யுபிஎஸ் குறைந்த பேட்டரி உள்ளது. Powerfailnow உள்ளீடுகளை இயக்கவும்.

/ Etc / powerstatus இல்லையென்றால் அல்லது F, O அல்லது L என்ற எழுத்துகள் தவிர வேறு எதுவும் இல்லை என்றால் Init F.

SIGPWR மற்றும் / etc / powerstatus இன் பயன்பாடு ஊக்கமளிக்கிறது. Init உடன் தொடர்பு கொள்ள விரும்பும் எவரும் / dev / initctl கட்டுப்பாட்டு சேனலைப் பயன்படுத்த வேண்டும்.

இயங்குநிலை மாற்றத்தை Init கேட்கும் போது, ​​இது புதிய ரன்ட்வெல்லில் வரையறுக்கப்படாத அனைத்து செயல்களுக்கும் எச்சரிக்கை சமிக்ஞை SIGTERM ஐ அனுப்புகிறது. இது SIGKILL சமிக்ஞைகளைப் பயன்படுத்தி இந்த செயல்முறைகளை கட்டாயப்படுத்தி 5 வினாடிகளுக்கு முன் காத்திருக்கிறது. Init ஆரம்பத்தில் அவற்றை உருவாக்கிய அதே செயல்முறை குழுவில் இந்த செயல்முறைகள் மற்றும் அவற்றின் வழித்தோன்றல்கள் உள்ளன என்று Init கருதுகிறது. எந்தவொரு செயலாக்கமும் அதன் செயல்முறை குழு தொடர்புகளை மாற்றினால், அது இந்த சிக்னல்களை பெறாது. இத்தகைய செயல்முறைகள் தனியாக நிறுத்தப்பட வேண்டும்.

Telinit

Telinit / sbin / init உடன் இணைக்கப்பட்டுள்ளது. பொருத்தமான செயலைச் செய்வதற்கு இது ஒரு எழுத்துக்குறி வாதம் மற்றும் சமிக்ஞைகள் Init ஐ எடுக்கிறது. பின்வரும் வாதங்கள் Telinit க்கு உத்தரவுகளாக செயல்படுகின்றன:

  • 0, 1, 2, 3, 4, 5, அல்லது 6: குறிப்பிட்ட இயக்க நிலைக்கு மாறுவதற்கு Init இல் சொல்லவும்.
  • a, b, c: Runlevel a, b, அல்லது c கொண்டிருக்கும் / etc / inittab கோப்பு உள்ளீடுகளை மட்டும் செயல்படுத்த Init க்கு கூறுங்கள்.
  • Q அல்லது q: / Etc / inittab கோப்பை மீண்டும் பரிசோதிக்க Init இல் சொல்லவும்.
  • எஸ் அல்லது கள்: ஒற்றை பயனர் பயன்முறைக்கு மாறுவதற்கு Init இல் சொல்லவும்.
  • U அல்லது u: தன்னை மீண்டும் செயல்படுத்துவதற்கு (மாநிலத்தை காப்பாற்றுதல்) init சொல்லவும். / Etc / inittab கோப்பின் மறு ஆய்வு செய்யப்படும். Runlevel S, s, 1, 2, 3, 4, அல்லது 5 ஆக இருக்க வேண்டும்; இல்லையெனில், கோரிக்கை அமைதியாக புறக்கணிக்கப்படுகிறது.

SIGTERM மற்றும் SIGKILL சமிக்ஞைகளை அனுப்புவதன் இடையே எத்தனை காலம் காத்திருக்க வேண்டும் என்று Telinit இன்இனிடமும் சொல்ல முடியும். இயல்புநிலை ஐந்து விநாடிகள் ஆகிறது, ஆனால் இந்த மதிப்பு மாற்ற முடியும் -t நொடி விருப்பம்.

டெலினிட் தகுந்த சலுகைகளுடன் பயனர்களால் மட்டுமே செயல்படுத்தப்பட முடியும்.

இன்விட் பைனரி காசோலைகள் இன்விட் அல்லது டெலினைட் அதன் செயலாக்க ஐடியைக் கண்டறிந்தால் சரிபார்க்கிறது. உண்மையான Init செயல்முறை அடையாள எப்போதும் 1 ஆகும். இது முதல், Telinit ஐ அழைக்க பதிலாக, ஒரு நபரை Init ஐ குறுக்குவழியாக பயன்படுத்தலாம்.