అందులో అన్ని లైనక్స్ ప్రాసెస్ల పేరెంట్. ఒక కంప్యూటర్ బూటింగుతున్నప్పుడు ప్రారంభమయ్యే మొదటి ప్రక్రియ ఇది, మరియు సిస్టమ్ మూసివేసే వరకు అమలు అవుతుంది. ఇది అన్ని ఇతర ప్రక్రియల పూర్వీకుడు.
ఫైల్ / etc / inittab లో నిల్వ చేయబడిన స్క్రిప్ట్ నుండి ప్రక్రియలను సృష్టించడం దీని ప్రధాన పాత్ర. ఈ ఫైల్ సాధారణంగా ఇన్విట్ వినియోగదారులకు లాగిన్ చేయగల ప్రతి లైనులో గెటింగుకు కారణమవుతుంది. ఇది ఏదైనా నిర్దిష్ట సిస్టమ్కు అవసరమైన స్వయంప్రతిపత్త ప్రక్రియలను కూడా నియంత్రిస్తుంది.
రన్లెవల్సును
ఒక వినియోగ స్థాయి అనేది వ్యవస్థ యొక్క సాఫ్ట్వేర్ కాన్ఫిగరేషన్, ఇది ఎన్నుకోబడే ప్రాసెస్లను మాత్రమే అమలు చేయడానికి అనుమతిస్తుంది. / Etc / inittab ఫైలునందు ఈ రన్లెవల్సుకు ప్రతి ఒక్కరి కొరకు Init చేత సృష్టించబడిన విధానాలు నిర్వచించబడ్డాయి. ఇనిట్ ఎనిమిది రన్లెల్స్లో ఒకటి కావచ్చు: 0 ద్వారా 6 మరియు S లేదా s. రన్లెవల్ ఒక విశేష వాడుకదారుడు Telinit పరుగుల ద్వారా మార్చబడింది, ఇది Init కు తగిన సిగ్నల్స్ పంపుతుంది, ఇది రన్లెవల్ ను మార్చటానికి ఇది చెబుతుంది.
రన్లెవెల్లు 0, 1 మరియు 6 రిజర్వు చేయబడ్డాయి. సిస్టమ్ను ఆపటానికి రన్లెల్ 0 ఉపయోగించబడును, సిస్టమ్ పునఃప్రారంభించటానికి రన్లెవల్ 6 ఉపయోగించబడుతుంది, మరియు రన్-వేల్ 1 ను వ్యవస్థను సింగిల్-యూజర్ రీతిలో పొందటానికి వాడబడుతుంది. రన్లెవల్ S నేరుగా వినియోగించబడదు కానీ బదులుగా రన్లెవల్ 1 లో ప్రవేశించినప్పుడు అమలు చేయబడిన స్క్రిప్ట్ ల ద్వారా.
7 నుండి 9 వరకు రన్లెవల్లు కూడా చెల్లుబాటు అయ్యేవి, అయినప్పటికీ "సంప్రదాయక" యునిక్స్ రకాలు వాటిని ఉపయోగించవు. రన్లెవల్స్ S మరియు s లు ఒకటి. అంతర్గతంగా, వారు అదే రన్లెవల్ కోసం మారుపేర్లు.
బూటింగు
కెర్నల్ బూట్ సీక్వెన్సు యొక్క చివరి దశగా Init ను పిలిచిన తరువాత, అది / etc / inittab ఫైలు యొక్క ఎంట్రీ ఉన్నట్లయితే, initdefault . Initdefault ఎంట్రీ సిస్టమ్ యొక్క ప్రారంభ రన్లెవల్ను నిర్ణయిస్తుంది. అలాంటి ఎంట్రీ లేనట్లయితే (లేదా / etc / inittab అస్సలు లేదు), రన్లెవల్ తప్పక సిస్టమ్ కన్సోల్లో నమోదు చేయబడాలి.
రన్లెవల్ S లేదా s సిస్టమ్ను సింగిల్-యూజర్ రీతికి తీసుకుంటుంది మరియు / etc / inittab ఫైలు అవసరం లేదు. ఒకే-వినియోగదారు రీతిలో, రూట్ షెల్ / dev / కన్సోలులో తెరవబడుతుంది.
సింగిల్-యూజర్ రీతిలో ప్రవేశించినప్పుడు, /etc/ioctl.save నుండి కన్సోల్ యొక్క ioctl స్థితులను init చదువుతుంది. ఈ ఫైలు ఉనికిలో లేకపోతే, init 9600 baud వద్ద మరియు CLOCAL సెట్టింగులతో లైన్ను ప్రారంభిస్తుంది. Init సింగిల్-యూజర్ మోడ్ ను వదిలిపెట్టినప్పుడు, అది ఈ ఫైలులోని కన్సోల్ యొక్క ioctl అమర్పులను నిల్వ చేస్తుంది, తద్వారా వాటిని తదుపరి సింగిల్-వినియోగదారు సెషన్కు తిరిగి వాడవచ్చు.
మొదటి సారి మల్టీసులర్ మోడ్లోకి ప్రవేశించినప్పుడు, వాడుకరి లాగిన్ కావడానికి ముందే ఫైల్ వ్యవస్థలు మౌంట్ చేయడానికి అనుమతించుటకు బూటు మరియు బూట్వేట్ ఎంట్రీలను Init నిర్వచిస్తుంది. అప్పుడు, రన్లెవల్తో సరిపోయే అన్ని ఎంట్రీలు ప్రాసెస్ చేయబడతాయి.
కొత్త ప్రాసెస్ ప్రారంభించినప్పుడు, Init మొదటి ఫైల్ / etc / initscript ఉందో లేదో తనిఖీ చేస్తుంది. అది చేస్తే, ఇది ప్రక్రియ ప్రారంభించడానికి ఈ లిపిని ఉపయోగిస్తుంది.
ప్రతిసారీ ఒక బిడ్డ పూర్తవుతుంది, Init వాస్తవం మరియు / var / run / utmp మరియు / var / log / wtmp లో మరణించిన కారణంతో ఈ ఫైల్స్ ఉనికిలో ఉన్నాయి.
రన్లెవెల్స్ మార్చడం
పేర్కొన్న అన్ని ప్రక్రియలను అది అభివృద్ధి చేసిన తరువాత, దాని యొక్క వంశపారంపర్య ప్రక్రియలలో ఒకటి చనిపోవటానికి, పవర్ఫైల్ సిగ్నల్ కొరకు, లేదా సిస్టమ్ యొక్క రన్లెవల్ని మార్చడానికి టెలీనిట్ చేత సంకేతింపబడటానికి దాని కొరకు వేచి ఉంటుంది. ఈ మూడు షరతులలో ఒకటి సంభవించినప్పుడు, అది / etc / inittab ఫైలు పునః పరిశీలన చేస్తుంది. క్రొత్త ఎంట్రీలు ఎప్పుడైనా ఈ ఫైల్కు జోడించబడతాయి. అయితే, init ఇప్పటికీ సంభవించే పైన మూడు పరిస్థితుల్లో ఒకటి కోసం వేచి. తక్షణ ప్రతిస్పందన కొరకు, Telinit Q లేదా q ఆదేశం / etc / inittab ఫైలును తిరిగి పరిశీలించుటకు Init ను మేల్కొనవచ్చు.
Init ఒక్క-వినియోగదారు రీతిలో లేనట్లయితే మరియు పవర్ఫైల్ సిగ్నల్ (SIGPWR) ను స్వీకరిస్తే, అది ఫైల్ / etc / powerstatus ను చదువుతుంది. అప్పుడు ఈ ఫైలు యొక్క విషయాల ఆధారంగా కమాండ్ను ప్రారంభిస్తుంది:
- F (AIL): శక్తి విఫలమైందని, UPS శక్తి అందిస్తోంది. పవర్వైడ్ మరియు పవర్ఫైల్ ఎంట్రీలను అమలు చేయండి.
- అలాగే): శక్తి పునరుద్ధరించబడింది, powerokwait ఎంట్రీలు అమలు.
- L (OW): శక్తి విఫలమైందని, మరియు UPS తక్కువ బ్యాటరీ కలిగి ఉంది. Powerfailnow ఎంట్రీలను అమలు చేయండి.
/ Etc / powerstatus ఉనికిలో లేనట్లయితే లేదా F, O లేదా L ల కంటే ఇతర ఏదైనా కలిగి ఉంటే Init అక్షరం F ను చదివేటప్పుడు ప్రవర్తిస్తుంది.
SIGPWR యొక్క వినియోగం మరియు / etc / powerstatus నిరుత్సాహపరుస్తుంది. Init తో ఇంటరాక్ట్ కావాలనుకునే ఎవరైనా / dev / initctl control channel ను వాడాలి.
రన్ఇవేల్ మార్చడానికి Init అభ్యర్థించబడినప్పుడు, అది కొత్త రన్లెవల్ లో నిర్వచించబడని అన్ని ప్రాసెస్లకు హెచ్చరిక సిగ్నల్ SIGTERM పంపుతుంది. ఇది SIGKILL సిగ్నల్ను ఉపయోగించి ఈ ప్రక్రియలను బలవంతంగా రద్దు చేయడానికి ముందు ఐదు సెకన్లపాటు వేచి ఉంటుంది. ఇనీట్ మొదట సృష్టించబడిన అదే ప్రక్రియ సమూహంలో ఈ ప్రక్రియలు మరియు వారి వారసులు అన్నింటికీ ఉంటుందని Init ఊహించాడు. ఏదైనా ప్రాసెస్ దాని సమూహ అనుబంధాన్ని మార్చితే, అది ఈ సంకేతాలను స్వీకరించదు. ఇటువంటి ప్రక్రియలు విడివిడిగా తొలగించాల్సిన అవసరం ఉంది.
Telinit
Telinit / sbin / init అనుసంధానించబడి ఉంది. సముచిత చర్యను నిర్వహించడానికి ఇది ఒక-అక్షర వాదన మరియు సిగ్నల్లు Init పడుతుంది. కింది వాదనలు టెలీనిట్కు మార్గదర్శకాలుగా పనిచేస్తాయి:
- 0, 1, 2, 3, 4, 5, లేదా 6: పేర్కొన్న రన్ స్థాయికి మారడానికి Init చెప్పండి.
- a, b, c: Runlevel a, b, లేదా c కలిగి ఉన్న ఆ / etc / inittab ఫైల్ ఎంట్రీలను మాత్రమే ప్రోసెస్ చెయ్యడానికి Init చెప్పండి.
- Q లేదా q: / Etc / inittab ఫైలు పునఃపరిశీలన చేసేందుకు Init చెప్పండి.
- S లేదా s: Single-User మోడ్కు మారడానికి Init చెప్పండి.
- U లేదా u: తిరిగి అమలు చేయడానికి (రాష్ట్రంను కాపాడుకునేందుకు) init చెప్పండి. / Etc / inittab ఫైలు యొక్క పునః-పరిశీలన ఏదీ జరుగుతుంది. రన్వేల్ S, s, 1, 2, 3, 4, లేదా 5 అయి ఉండాలి; లేకపోతే, అభ్యర్థన నిశ్శబ్దంగా విస్మరించబడుతుంది.
SIGTERM మరియు SIGKILL సంకేతాలను పంపే ప్రక్రియల మధ్య టెలీనిట్ ఇన్నిట్ ఎంతకాలం వేచి ఉండాలో కూడా తెలియజేస్తుంది. డిఫాల్ట్ ఐదు సెకన్లు, కానీ ఈ విలువతో మార్చవచ్చు -t సెక ఎంపిక.
Telinit తగిన అధికారాలు కలిగిన వినియోగదారులచే మాత్రమే చేయబడుతుంది.
Init బైనరీ తనిఖీలు దాని ప్రాసెస్ ఐడిని చూడటం ద్వారా Init లేదా Telinit అయితే. అసలు Init యొక్క ప్రాసెస్ ID ఎల్లప్పుడూ 1. ఈ నుండి, అది Telinit కాల్ బదులుగా, ఒక వ్యక్తి Init ఉపయోగించడానికి ఒక షార్ట్కట్ గా.













