ලිනක්ස් විධාන විධාන භාවිතා කරන්නේ කෙසේද

සෑම ක්රියාවලියක මව්පියන් වන්නේ Init වේ. එහි මූලික කාර්යභාරය වනුයේ ගොනු / etc / inittab ගොනුව තුල ගබඩා කර ඇති අක්ෂර නිර්මාණය කිරීමයි ( inittab (5 බලන්න)). මෙම ගොනුව සාමාන්යයෙන් ප්රවේශ වන්නේ පරිශීලකයින්ට පිවිසිය හැකි සෑම රේඛාවක් තුලම ගිටීස් පොඟවා ගැනීම සඳහායි . එමගින් ඕනෑම විශේෂිත පද්ධතියකින් ස්වාධීන ක්රියාවලීන් පාලනය කරයි.

ක්රියා මට්ටම

ක්රියා මට්ටම යනු පද්ධතියේ තෝරාගත් කණ්ඩායමක් පමණක් පවතින ක්රමලේඛයේ වින්යාසයකි. මෙම එක් එක් ක්රියාමාර්ගය සඳහා init මඟින් හටගත් ක්රියාවලීන් / etc / inittab ගොනුවේ අර්ථ දක්වනු ලැබේ. ඉන්ටෙට් ක්රියාමාර්ගය අටේ එකක් විය හැක: 0-6 සහ S හෝ s . වරප්රසාද ලත් පරිශීලක ටයිනින්ට් ධාවනය කිරීමෙන් ක්රියා මට්ටම වෙනස් වේ. එය වෙනස් කිරීම සඳහා කුමන ක්රියාමට්ටමට දැනුම්දෙන්නට අවශ්ය නිසි සංඥා යැවීම.

ක්රියා මට්ටම 0 , 1 සහ 6 වෙන් කර ඇත. Runlevel 0 පද්ධතිය නවතාලීමට භාවිතා කරනු ලැබේ, ක්රියා මට්ටම නැවත ආරම්භ කිරීම සඳහා ක්රියා මට්ටම 6 භාවිතා කරයි, සහ ක්රියා මට්ටම 1 භාවිතා කරනු ලබන්නේ පද්ධතිය එක් පරිශීලක මාතයක් බවට පත් කිරීමටයි. Runlevel S ඇත්ත වශයෙන්ම සෘජුවම භාවිතා කිරීමට අදහස් නොකෙරේ, නමුත් ක්රියා මට්ටමට පිවිසෙන විට ක්රියාත්මක කරන ලද ස්ක්රිප්ට් සඳහා තවත්. මෙය සඳහා තවත් තොරතුරු සඳහා shutdown (8) සහ inittab (5) සඳහා වන පිටු බලන්න.

ක්රියා මට්ටම 7-9 ද වලංගු නොවේ. මෙය "සාම්ප්රදායික" යුනික්ස් ප්රභේදයන් ඒවා භාවිතා නොකරයි. ඔබ කුතුහලයක් ඇති නම්, ක්රියාමාර්ගය S සහ s සත්ය වශයෙන්ම සමාන වේ. අභ්යන්තරවම එම ක්රියාමට්ටම සඳහා අන්වර්ථයන් වේ.

ඇරඹුම

Init පසුව කර්නල් ඇරඹුම් අනුක්රමයෙහි අවසන් පියවර ලෙස ආයාචනය කරනු ලැබේ, එය initdefault ආකාරයේ ඇතුල්වීමක් තිබේදැයි බලන්න / etc / inittab වෙත පිවිසෙන්න ( inittab (5 බලන්න) බලන්න). Initdefault ප්රවේශය පද්ධතියේ ආරම්භක ක්රියා මට්ටම තීරණය කරයි. එවැනි ප්රවේශයක් නොමැති නම් (නැතහොත් / etc / inittab නැත), පද්ධතියේ අග්රය තුල ක්රියා මට්ටමේ ඇතුල් කළ යුතුය.

Runlevel S හෝ s පරිශීලකයින් එක් පරිශීලක මාතයක් වෙත ගෙන ගෙන / etc / inittab ගොනුව අවශ්ය නොවේ. එක් පරිශීලක ආකෘතියක් තුළ, root shell / dev / console මත විවෘත වේ .

තනි පරිශීලක ප්රකාරයට පිවිසීමේදී, init මඟින් කොන්සෝලයෙහි ioctl (2) states /etc/ioctl.save වෙතින් කියවනු ලැබේ. මෙම ගොනුව නොතිබේ නම් init මඟින් රේඛාව 9600 Baud සහ CLOCAL සැකසුම් සමඟ ආරම්භ කරයි. Init එක තනි පරිශීලක ප්රකාරයක් ඉතිරි වන විට, එය console's ioctl සැකසුම් මෙම ගොනුවේ ගබඩා කර තබා ගැනීම සඳහා ඊළඟ පරිශීලක එක සැසිය සඳහා නැවත භාවිතා කළ හැකිය.

පළමු වරට බහු පරිශීලක ප්රකාරයට ඇතුල් වන විට, init මඟින් පරිශීලකයින්ට ලොග් වීමට පෙර ගොනු පද්ධති සවි කළ හැකි වන පරිදි ආරම්භක සහ bootwait ඇතුළත් කිරීම් සිදුකරයි. ඉන්පසු ක්රියා මට්ටමට ගැලපෙන සියලු සටහන් සකසනු ලැබේ.

නව ක්රියාවලියක් ආරම්භ කරන විට, init මුලින්ම / etc / initscript ගොනුව හෝ තිබේදැයි පරීක්ෂා කරයි. එය සිදු කරන්නේ නම්, එය ක්රියාවලිය ආරම්භ කිරීම සඳහා මෙම රචනය භාවිතා කරයි.

සෑම දරුවෙකුම අවසන් වන සෑම අවස්ථාවකදීම, init වාර්ථාව සහ / var / run / utmp සහ / var / log / wtmp තුල මිය ගිය හේතුව මෙම ලිපිගොනු ඇති බව තහවුරු කර ඇත.

ක්රියා මට්ටම වෙනස් කිරීම

එය නිශ්චිතව දක්වා ඇති සියලු ක්රියාදාමයන් ආරම්භ වූ පසු, ඉන්ටෙට් සිය මියගිය ක්රියාවලීන්ගෙන් එක් අයෙකු මිය යාම සඳහා, powerfail සංඥා, හෝ පද්ධතියේ ක්රියා මට්ටම වෙනස් කිරීමට ටෙලිනිට් මගින් සංඥා කරන තුරු. ඉහත කොන්දේසි තුනෙන් එකක් සිදුවන්නේ නම්, එය / etc / inittab ගොනුවේ නැවත සලකා බලයි. ඕනෑම අවස්ථාවක මෙම ලිපිනයට නව පිවිසුම් එක් කළ හැක. කෙසේ වෙතත්, init තවමත් ඉහත කොන්දේසි තුනක් එක් කිරීමට අපේක්ෂා කරයි. ක්ෂණික ප්රතිචාරයක් ලබා දීම සඳහා, telinit Q හෝ q විධානය මඟින් / etc / inittab ගොනුව නැවත පරීක්ෂා කිරීම සඳහා init තුලින් අවදි විය හැක.

Init එක පරිශීලක පද්දතියේ නොමැති නම් හා Powerfail සංඥාව (SIGPWR) ලබා ගනී නම්, එය / etc / powerstatus ගොනුව කියවිය යුතුය. ඉන්පසු මෙම ගොනුවේ අන්තර්ගතය මත පදනම්ව විධානයක් ආරම්භ කරයි:

F (AIL)

බලය අසමත් වන අතර, UPS බලය ලබා දෙයි. බලාගාරය සහ බලසැකසුම් සටහන් ක්රියාත්මක කරන්න.

හරි)

බලය යළි ස්ථාපනය කර ඇති අතර, බලාගැනීමේ සටහන් ක්රියාත්මක කරන්න.

අඩු)

බලය අක්රිය වී ඇති අතර UPS බැටරි බැටරි තිබේ. Powerfailnow සටහන් කරන්න.

/ Etc / powerstatus නොතිබීම හෝ අන් කිසිවක් අඩංගු නැතහොත් අකුරු F , O හෝ L , init අකුරු F ලෙස කියවනු ඇත.

SIGPWR සහ / etc / powerstatus භාවිතය අධෛර්යමත් කරවයි . Init සමඟ අන්තර් ක්රියාකාරී වීමට කැමති කෙනෙකුට / dev / initctl පාලක නාලිකාව භාවිතා කළ යුතුය - මෙය ගැන තවත් ලේඛන සඳහා sysvinit ඇසුරුමේ මූල කේත බලන්න.

ආරම්භක මට්ටම වෙනස් කිරීමට init ලෙස ඉල්ලා සිටින විට, එය නව ක්රියා මට්ටමේ නිර්වචනය නොකරන සියලු ක්රියාවලි සඳහා SIGTERM අනතුරු ඇඟවීමේ සංඥා යවයි. SIGKILL සංඥාව මගින් මෙම ක්රියාදාමයන් බලහත්කාරයෙන් අවසන් කිරීම තත්පර පහකට පසුව වේ. මෙම init සියල්ලම (සහ ඔවුන්ගේ පරම්පරාවන්) ඔවුන් සඳහා නිර්මාණය කළ මුල් ක්රියාවලියට අයත් වේ. කිසියම් ක්රියාදාමයක් එහි ක්රියාවලි සමූහයේ සාමාජිකත්වය වෙනස් වුවහොත් එම සංඥා නොලැබේ. එවන් ක්රියාවලීන් වෙන් වෙන්ව අවසන් කළ යුතුය.

ටෙලිනිට්

/ sbin / telinit / sbin / init වෙත සම්බන්ධ වී ඇත. එක් අක්ෂර තර්කයක් සහ සුදුසු පියවරයන් ක්රියාත්මක කිරීම සඳහා init සංඥාව ලබා ගනී. පහත තර්කයන් ටෙලිනිට්ට උපෙදස් සපයයි :

0 , 1 , 2 , 3 , 4 , 5 හෝ 6

specified run මට්ටම වෙත මාරුවීමට init කියන්න.

a , b , c

ක්රියාමාර්ගය සඳහා init කියවීමට / etc / inittab ගොනුවේ ඇතුළත් කිරීම් ක්රියා මට්ටම, a , b හෝ c සමඟ ක්රියාකරවන්න .

Q හෝ q

/ etc / inittab ගොනුව නැවත පරීක්ෂා කිරීම සඳහා init කියන්න.

S හෝ s

තනි පරිශීලක මාතය වෙත මාරුවීමට init කියන්න.

U හෝ u

නැවත ක්රියාත්මක කිරීම සඳහා (inicial) ලෙස ක්රියාකරවන්න (state preservation). / Etc / inittab ගොනුව නැවත විමර්ශනය කිරීම සිදු නොවේ. ධාවන මට්ටම් Ss12345 වලින් එකක් විය යුතුය , එසේ නැත්නම් ඉල්ලීම නිශ්ශබ්දව නොසලකා හරිනු ඇත.

ටයිලිනිට්ට අමතරව SIGTERM සහ SIGKILL සංඥා යැවීමේ ක්රියාවලිය අතරතුර රැඳී සිටිය යුතුදැයි කෙටියෙන් කිව හැක. පෙරනිමිය තත්පර 5 ක් වේ. නමුත් මෙය -tec විකල්පය සමඟ වෙනස් කළ හැක.

ටෙලිනිට් හට සුදුසු වරප්රසාද සහිත පරිශීලකයින් හට පමණක් අදාළ විය හැකිය.

එහි ක්රියාවලිය හැඳින ගැනීමෙන් init හෝ telinit නම් init ද්විමය පරික්ෂා කිරීම; සැබෑ init ක්රියාවලියේ ID එක සෑම විටම 1 . මෙයින් අදහස් වන්නේ ටෙලිනිට් ඇමතීම වෙනුවට, කෙටි මාර්ගයක් ලෙස වෙනුවට init භාවිතා කළ හැකි බවයි.