systemd init సిస్టమ్ ఇప్పుడు దాదాపు అన్ని Linux పంపిణీలలో ఒక భాగం. నిర్వాహకుడు లేదా డెవలపర్గా, మీరు systemd నిర్వహించగల సేవలను సృష్టిస్తారు. ఉదాహరణకు, మీరు బూట్లో సేవలను ప్రారంభించాలనుకుంటే లేదా వాటిని మాన్యువల్గా నియంత్రించాలనుకుంటే, అది అనుకూల సేవా ఫైల్ ద్వారా చేయవచ్చు.
ఈ ట్యుటోరియల్లో, Linuxలో systemd సర్వీస్ ఫైల్ను ఎలా సృష్టించాలో నేను వివరిస్తాను.
సర్వీస్ ఫైల్ అంటే ఏమిటి
మరింత ముందుకు వెళ్ళే ముందు, systemd సర్వీస్ ఫైల్ అంటే ఏమిటి మరియు అది Linuxలో ఎలా సృష్టించబడుతుందో తెలుసుకుందాం.
systemd సర్వీస్ ఫైల్లో systemd సర్వీస్ని మేనేజ్ చేయడానికి సెట్ చేయబడిన సూచనలుంటాయి. ఇది సాధారణంగా మూడు విభాగాలను కలిగి ఉంటుంది:
- యూనిట్
- సేవ
- ఇన్స్టాల్ చేయండి
ది యూనిట్ విభాగంలో చిన్న వివరణ, డాక్యుమెంటేషన్ పేజీలు మరియు డిపెండెన్సీలకు మార్గం వంటి సేవ గురించి ప్రాథమిక సమాచారాన్ని కలిగి ఉంటుంది. ది ఇన్స్టాల్ చేయండి విభాగం ఐచ్ఛికం, కానీ సాధారణంగా ఇది సేవను ఏ సిస్టమ్ స్థితిలో ప్రారంభించాలో నిర్వహిస్తుంది.
ది సేవ విభాగం సాధారణంగా యూనిట్ మరియు ఇన్స్టాల్ విభాగం మధ్య శాండ్విచ్ చేయబడుతుంది. ఇది ప్రాథమికంగా ఎక్జిక్యూటబుల్స్ యొక్క సర్వీస్ రకం మరియు పాత్ను కలిగి ఉంటుంది, ఇవి systemd ద్వారా సేవను ప్రారంభించేటప్పుడు అమలు చేయడానికి కమాండ్లు.
సాధారణ సేవా ఫైల్ నిర్మాణం ఎలా ఉంటుందో ఇక్కడ ఉంది.
[ యూనిట్ ]
ఆదేశం 1 = సూచన
ఆదేశం2 = సూచన
…
[ సేవ ]
ఆదేశం 1 = సూచన
ఆదేశం2 = సూచన
…
[ ఇన్స్టాల్ చేయండి ]
ఆదేశం 1 = సూచన
ఆదేశం2 = సూచన
…
ఇక్కడ, ఆదేశాలు వాటి సంబంధిత ఇన్పుట్ను తీసుకునే పారామీటర్లు. ఉదాహరణకు, ది వివరణ డైరెక్టివ్ సేవ యొక్క పేరు యొక్క స్ట్రింగ్ను తీసుకుంటుంది. ఇదే పద్ధతిలో, ExecStart ఎక్జిక్యూటబుల్ యొక్క పూర్తి మార్గాన్ని పరిగణనలోకి తీసుకుంటుంది.
యొక్క సాధారణ సేవా ఫైల్ ssh.service క్రింద ఇవ్వబడింది.
సేవా ఫైల్ను ఎలా సృష్టించాలి
systemd సేవను సృష్టించడానికి, కీలక ఆదేశాలను అర్థం చేసుకోవడం అవసరం. ఈ గైడ్లో, పూర్తిగా ఫంక్షనల్ సర్వీస్ ఫైల్ను రూపొందించడంలో మీకు సహాయపడే ముఖ్యమైన ఆదేశాలను నేను కవర్ చేస్తాను.
సేవా ఫైల్ను సృష్టించడం బహుళ దశలను కలిగి ఉంటుంది, స్క్రిప్ట్ ఫైల్ను సృష్టించడం ద్వారా ప్రారంభిద్దాం.
గమనిక: దిగువ పేర్కొన్న పద్ధతిని కొనసాగించడానికి, మీరు తప్పనిసరిగా రూట్ అధికారాలను కలిగి ఉండాలి.
1. స్క్రిప్ట్ను సృష్టించడం
ప్రారంభ దశలో సేవ దాని ఆపరేషన్ ప్రారంభించినప్పుడు అమలు చేయబడే కోడ్ యొక్క సృష్టిని కలిగి ఉంటుంది. ఈ ట్యుటోరియల్ కోసం, నేను Linux సిస్టమ్ యొక్క సమయ సమయాన్ని మరియు మెమరీ వినియోగాన్ని నిల్వ చేసే బాష్ స్క్రిప్ట్ను సృష్టిస్తున్నాను.
అనే పేరుతో ప్రస్తుత డైరెక్టరీలో స్క్రిప్ట్ని క్రియేట్ చేద్దాం myscript.sh నానో ఎడిటర్ ఉపయోగించి.
సుడో నానో myscript.shఇప్పుడు, ఫైల్లో క్రింద ఇచ్చిన స్క్రిప్ట్ను జోడించి, నొక్కడం ద్వారా దాన్ని సేవ్ చేయండి ctrl+x ఆపై మరియు .
#!/బిన్/బాష్ప్రతిధ్వని '>>ఇక్కడ మీ సిస్టమ్ యొక్క సమయ సమయం<<' > ఇల్లు / తాను / myfile.txt
సమయము >> ఇల్లు / తాను / myfile.txt
ప్రతిధ్వని '>>మీ సిస్టమ్ యొక్క మెమరీ వినియోగం ఇక్కడ ఉంది<<' >> / ఇల్లు / తాను / myfile.txt
ఉచిత -మీ >> ఇల్లు / తాను / myfile.txt
నిద్ర 60
స్క్రిప్ట్లో కొన్ని ఎకో స్ట్రింగ్లు ఉన్నాయి మరియు సమయము మరియు ఉచిత ఆదేశాలు.
ది సమయము లైనక్స్లోని కమాండ్ సిస్టమ్ ఎంతకాలం రన్ అవుతోంది మరియు గత 1, 5 మరియు 15 నిమిషాల సగటు సిస్టమ్ లోడ్తో ఎంత మంది వినియోగదారులు కనెక్ట్ అయ్యారో ప్రింట్ చేయడానికి ఉపయోగించబడుతుంది.
ది ఉచిత సిస్టమ్ యొక్క మెమరీ వినియోగాన్ని ప్రింట్ చేయడానికి కమాండ్ ఉపయోగించబడుతుంది, అయితే -మీ అవుట్పుట్ను ప్రింట్ చేయడానికి ఫ్లాగ్ ఉపయోగించబడుతుంది MBలు .
టెక్స్ట్ ఫైల్లో సమాచారాన్ని సేవ్ చేయడానికి, మేము మళ్లింపు ఆపరేటర్లు అని పిలువబడే ప్రత్యేక ఆపరేటర్లను ఉపయోగిస్తాము. ది > పేర్కొన్న టెక్స్ట్ ఫైల్కి వచనాన్ని చొప్పించడానికి ఆపరేటర్ ఉపయోగించబడుతుంది. అయినప్పటికీ, ఫైల్ ఇప్పటికే లేనట్లయితే, అది సృష్టించబడుతుంది. కాగా ది >> ఫైల్లో వచనాన్ని జోడించడానికి ఆపరేటర్ ఉపయోగించబడుతుంది. ది నిద్ర సేవ యొక్క కార్యాచరణను కనీసం ఒక నిమిషం పాటు నిర్వహించడానికి కమాండ్ ఉపయోగించబడుతుంది.
ఇప్పుడు, అవసరమైన అనుమతులను మంజూరు చేయడం ద్వారా స్క్రిప్ట్ను ఎక్జిక్యూటబుల్గా చేయండి.
సుడో chmod +x myscript.shస్క్రిప్ట్ ఇప్పుడు అమలు అనుమతిని కలిగి ఉంది, తదుపరి విభాగానికి వెళ్దాం.
గమనిక: సర్వీస్ ఫైల్ను దోష రహితంగా చేయడానికి, బాష్ స్క్రిప్ట్లో ఫైల్ యొక్క సంపూర్ణ మార్గాన్ని ఉపయోగించండి.
2. .service ఫైల్ని సృష్టిస్తోంది
తరువాత, దీనితో సేవా ఫైల్ను సృష్టించండి .సేవ పొడిగింపు. సేవా ఫైల్ తప్పనిసరిగా సృష్టించబడాలి /etc/systemd/system డైరెక్టరీ. ముందుగా, ఉపయోగించి ఈ డైరెక్టరీకి నావిగేట్ చేయండి cd ఆదేశం.
cd / మొదలైనవి / systemd / వ్యవస్థమీరు ఏ డైరెక్టరీలోనైనా సర్వీస్ ఫైల్ను సృష్టించవచ్చు మరియు తర్వాత ఆ ఫైల్ని ఈ డైరెక్టరీకి తరలించవచ్చు.
నేను దీనితో సర్వీస్ ఫైల్ని క్రియేట్ చేస్తున్నాను myservice.service పేరు.
సుడో నానో myservice.serviceఇప్పుడు, ఫైల్కి క్రింది పంక్తులను జోడించండి.
[ యూనిట్ ]వివరణ = నా సేవ
[ సేవ ]
టైప్ చేయండి = సాధారణ
ExecStart = / డబ్బా / బాష్ / ఇల్లు / తాను / script.sh
పునఃప్రారంభించండి = వైఫల్యంపై
[ ఇన్స్టాల్ చేయండి ]
వాంటెడ్ బై =multi-user.target
అని గమనించండి [యూనిట్], [సేవ], మరియు [ఇన్స్టాల్] ఉన్నాయి కేస్-సెన్సిటివ్ . సేవ ఫైల్ [UNIT] లేదా [SERVICE] వంటి వాటిలో ఏదైనా తప్పుగా పేర్కొనబడితే పని చేయదు.
సేవ పేరు ఇలా పేర్కొనబడింది నా సేవ లో వివరణ యొక్క ఆదేశం [యూనిట్] విభాగం.
ది టైప్ చేయండి సేవ యొక్క సాధారణ లో [సేవ] విభాగం, ఇది డిఫాల్ట్ రకం. ఫోర్కింగ్ , ఒక్క దెబ్బ , తెలియజేయండి , dbus , మరియు పనిలేకుండా ఉండేవి కొన్ని ఇతర రకాలు.
మీరు సేవను వినియోగదారు-నిర్దిష్టంగా చేయాలనుకుంటే, ది వినియోగదారు డైరెక్టివ్ వినియోగదారు యొక్క వినియోగదారు పేరుతో కూడా ఉపయోగించవచ్చు. ఈ ఆదేశాన్ని ఉపయోగించడం వలన సేవ వినియోగదారు అనుమతిపై ఆధారపడి ఉంటుంది.
కాగా ది ExecStart ఆదేశం ఎక్జిక్యూటబుల్ యొక్క పూర్తి మార్గాన్ని కలిగి ఉంటుంది. పై ఉదాహరణలో, స్క్రిప్ట్ ఫైల్ myscript.sh లో నిల్వ చేయబడుతుంది /హోమ్/సామ్/ డైరెక్టరీ. ఈ ఆదేశం వాస్తవానికి systemd ద్వారా సేవ ప్రారంభించబడినప్పుడు ఏమి అమలు చేయాలో నిర్వహిస్తుంది. కమాండ్ యొక్క పూర్తి మార్గం పేర్కొనబడకపోతే, అది స్వయంచాలకంగా సంపూర్ణ మార్గాలను సరిచేయడానికి పరిష్కరించబడుతుంది /usr/local/bin , /usr/bin/, మరియు /బిన్ . ప్రామాణిక కమాండ్ డైరెక్టరీలలో ఉన్నంత వరకు ఎక్జిక్యూటబుల్ పేరును ఉపయోగించడం చాలా మంచిది, అయితే, సంపూర్ణ మార్గాన్ని పేర్కొనండి. సెమికోలన్ (;) ద్వారా వేరు చేయబడిన బహుళ ఆదేశాలను కూడా ఉపయోగించవచ్చని గమనించండి.
ది [ఇన్స్టాల్] విభాగం ఐచ్ఛికం; అయితే, ఇది సేవ ఎలా ప్రారంభించబడిందో సూచిస్తుంది. ది వాంటెడ్ బై డైరెక్టివ్ రన్-లెవల్ టార్గెట్ ఫైల్లను పారామీటర్లుగా తీసుకుంటుంది. వివిధ లక్ష్య ఫైల్లు సిస్టమ్ యొక్క వివిధ రన్-లెవెల్లను సూచించాయి పవర్ ఆఫ్ , రక్షించు , బహుళ-వినియోగదారు , గ్రాఫికల్ , మరియు రీబూట్ .
ది బహుళ వినియోగదారు. లక్ష్యం బహుళ-వినియోగదారు నాన్-గ్రాఫికల్ సెషన్లను అనుమతించడానికి సిస్టమ్ స్థితిలో ఉన్నప్పుడు సేవ ప్రారంభించబడుతుంది.
3. సేవను సక్రియం చేయడం
సేవను సక్రియం చేయడానికి, ముందుగా, ఉపయోగించి systemd కాన్ఫిగరేషన్లను రీలోడ్ చేయండి systemctl వినియోగ.
సుడో systemctl డెమోన్-రీలోడ్తర్వాత, ఉపయోగించి సేవను మళ్లీ సక్రియం చేయండి systemctl తో ఆదేశం ప్రారంభించు .
సుడో systemctl ప్రారంభించు myservice.serviceధృవీకరించడానికి, సేవ యొక్క స్థితిని ఉపయోగించి తనిఖీ చేయండి systemctl స్థితి ఆదేశం.
సేవ విజయవంతంగా నడుస్తోంది.
ఇప్పుడు, టెక్స్ట్ ఫైల్ని చదువుదాం myfile.txt లో సృష్టించబడిన సేవ /ఇల్లు డైరెక్టరీ.
సాధారణ వినియోగదారు కోసం Systemd సర్వీస్ ఫైల్ను ఎలా సృష్టించాలి
ఒక సాధారణ వినియోగదారు కోసం సేవా ఫైల్ను సృష్టించే విధానం, నిర్వాహకుడు సేవా ఫైల్ను సృష్టించే పద్ధతిని పోలి ఉంటుంది. అయితే, సాధారణ వినియోగదారుల కోసం సర్వీస్ ఫైల్ను సేవ్ చేయడానికి డైరెక్టరీ భిన్నంగా ఉంటుంది. సాధారణ వినియోగదారులు తప్పనిసరిగా తమ సర్వీస్ ఫైల్లను ఇందులో ఉంచాలి ~/.config/systemd/user . ఈ డైరెక్టరీని తప్పనిసరిగా ఉపయోగించి సృష్టించాలి mkdir ఆదేశం.
mkdir ~ / .config / systemd / వినియోగదారుసాధారణ వినియోగదారు ద్వారా సేవను సక్రియం చేయడానికి - వినియోగదారు తో కమాండ్ చొప్పించబడింది systemctl బదులుగా సుడో .
systemctl --వినియోగదారు డెమోన్-రీలోడ్systemctl --వినియోగదారు ప్రారంభించు SERVICE-NAME.service
systemctl --వినియోగదారు స్థితి SERVICE-NAME.service
ది - వినియోగదారు వినియోగదారు యొక్క systemd సర్వీస్ ఫైల్లను నిర్వహించడానికి ఎంపిక ఉపయోగించబడుతుంది.
సర్వీస్ ఫైల్ను ఎలా తొలగించాలి
సేవా ఫైల్ను తీసివేయడానికి, మొదట, సేవను నిలిపివేయాలి.
సుడో systemctl స్టాప్ SERVICE-NAME.serviceఉపయోగించి స్థితిని తనిఖీ చేయండి systemctl స్థితి సేవ నిలిపివేయబడిందో లేదో తెలుసుకోవడానికి ఆదేశం. ఆపై సర్వీస్ ఫైల్ను ఉపయోగించి తొలగించండి rm ఆదేశం.
సుడో rm / మొదలైనవి / systemd / వ్యవస్థ / SERVICE-NAME.serviceఇప్పుడు, రీలోడ్ చేయండి systemd ఆకృతీకరణ.
సుడో systemctl డెమోన్-రీలోడ్ముగింపు
వివిధ సందర్భాల్లో అనుకూల systemd సేవ ప్రయోజనకరంగా ఉంటుంది. ఈ గైడ్లో, సిస్టమ్ అడ్మినిస్ట్రేటర్ కోసం అనుకూల systemd సర్వీస్ ఫైల్ను ఎలా సృష్టించాలో మరియు సాధారణ వినియోగదారులు సేవా ఫైల్ను ఎలా సృష్టించాలో మేము నేర్చుకున్నాము. ఇంకా, మేము సర్వీస్ ఫైల్ను తీసివేసే విధానాన్ని కూడా చూస్తాము.