systemd init அமைப்பு இப்போது கிட்டத்தட்ட அனைத்து Linux விநியோகங்களின் ஒரு பகுதியாக உள்ளது. ஒரு நிர்வாகி அல்லது டெவலப்பராக, நீங்கள் systemd நிர்வகிக்கக்கூடிய சேவைகளை உருவாக்குகிறீர்கள். எடுத்துக்காட்டாக, நீங்கள் துவக்கத்தில் சேவைகளைத் தொடங்க விரும்பினால் அல்லது அவற்றை கைமுறையாகக் கட்டுப்படுத்த விரும்பினால், அதை தனிப்பயன் சேவை கோப்பு மூலம் செய்யலாம்.
இந்த டுடோரியலில், லினக்ஸில் ஒரு systemd சேவை கோப்பை எவ்வாறு உருவாக்குவது என்பதை நான் காண்பேன்.
சேவை கோப்பு என்றால் என்ன
மேலும் செல்வதற்கு முன், systemd சேவை கோப்பு என்றால் என்ன, அது Linux இல் எவ்வாறு உருவாக்கப்படுகிறது என்பதைப் புரிந்துகொள்வோம்.
systemd சேவை கோப்பில் systemd சேவையை நிர்வகிப்பதற்கான வழிமுறைகள் உள்ளன. இது பொதுவாக மூன்று பிரிவுகளைக் கொண்டுள்ளது:
- அலகு
- சேவை
- நிறுவு
தி அலகு பிரிவில் ஒரு சிறிய விளக்கம், ஆவணப் பக்கங்கள் மற்றும் சார்புகளுக்கான பாதை போன்ற சேவை பற்றிய அடிப்படை தகவல்கள் உள்ளன. தி நிறுவு பிரிவு விருப்பமானது, ஆனால் பொதுவாக எந்த கணினி நிலையில் சேவை இயக்கப்பட வேண்டும் என்பதை இது நிர்வகிக்கிறது.
தி சேவை பிரிவு பொதுவாக அலகு மற்றும் நிறுவல் பகுதிக்கு இடையில் இணைக்கப்பட்டுள்ளது. இது முதன்மையாக சேவையின் வகை மற்றும் இயங்குதளங்களின் பாதை ஆகியவற்றைக் கொண்டுள்ளது, அவை systemd மூலம் சேவையைத் தொடங்கும்போது செயல்படுத்துவதற்கான கட்டளைகளாகும்.
ஒரு பொதுவான சேவை கோப்பு அமைப்பு எப்படி இருக்கும் என்பது இங்கே.
[ அலகு ]
உத்தரவு1 = அறிவுறுத்தல்
உத்தரவு2 = அறிவுறுத்தல்
…
[ சேவை ]
உத்தரவு1 = அறிவுறுத்தல்
உத்தரவு2 = அறிவுறுத்தல்
…
[ நிறுவு ]
உத்தரவு1 = அறிவுறுத்தல்
உத்தரவு2 = அறிவுறுத்தல்
…
இங்கே, கட்டளைகள் என்பது அந்தந்த உள்ளீட்டை எடுக்கும் அளவுருக்கள். உதாரணமாக, தி விளக்கம் உத்தரவு சேவையின் பெயரின் ஒரு சரத்தை எடுக்கும். இதே முறையில், ExecStart இயங்கக்கூடிய முழுமையான பாதையை கணக்கில் எடுத்துக்கொள்கிறது.
ஒரு பொதுவான சேவை கோப்பு ssh.service கீழே கொடுக்கப்பட்டுள்ளது.
ஒரு சேவை கோப்பை எவ்வாறு உருவாக்குவது
systemd சேவையை உருவாக்க, முக்கிய வழிமுறைகளைப் புரிந்துகொள்வது அவசியம். இந்த வழிகாட்டியில், முழுமையான செயல்பாட்டு சேவைக் கோப்பை உருவாக்க உங்களுக்கு உதவும் அத்தியாவசிய வழிமுறைகளை நான் உள்ளடக்குகிறேன்.
சேவைக் கோப்பை உருவாக்குவது பல படிகளை உள்ளடக்கியது, ஸ்கிரிப்ட் கோப்பை உருவாக்கத் தொடங்குவோம்.
குறிப்பு: கீழே குறிப்பிடப்பட்டுள்ள முறையைத் தொடர, உங்களுக்கு ரூட் சிறப்புரிமைகள் இருக்க வேண்டும்.
1. ஸ்கிரிப்டை உருவாக்குதல்
சேவை அதன் செயல்பாட்டைத் தொடங்கும் போது செயல்படுத்தப்படும் குறியீட்டை உருவாக்குவது ஆரம்ப கட்டத்தில் அடங்கும். இந்த டுடோரியலுக்காக, லினக்ஸ் சிஸ்டம் மற்றும் மெமரி உபயோகத்தின் நேரத்தைச் சேமிக்கும் பாஷ் ஸ்கிரிப்டை உருவாக்குகிறேன்.
என்ற பெயருடன் தற்போதைய கோப்பகத்தில் ஒரு ஸ்கிரிப்டை உருவாக்குவோம் myscript.sh நானோ எடிட்டரைப் பயன்படுத்தி.
சூடோ நானோ myscript.shஇப்போது கீழே கொடுக்கப்பட்டுள்ள ஸ்கிரிப்டை கோப்பில் சேர்த்து அழுத்தி சேமிக்கவும் ctrl+x பின்னர் மற்றும் .
#!/பின்/பாஷ்எதிரொலி '>>இதோ உங்கள் கணினியின் இயக்க நேரம்<<' > வீடு / தன்னை / myfile.txt
முடிந்தநேரம் >> வீடு / தன்னை / myfile.txt
எதிரொலி '>>உங்கள் கணினியின் நினைவகப் பயன்பாடு இங்கே உள்ளது<<' >> / வீடு / தன்னை / myfile.txt
இலவசம் -மீ >> வீடு / தன்னை / myfile.txt
தூங்கு 60
ஸ்கிரிப்ட்டில் இரண்டு எதிரொலி சரங்கள் மற்றும் உள்ளன முடிந்தநேரம் மற்றும் இலவசம் கட்டளைகள்.
தி முடிந்தநேரம் லினக்ஸில் உள்ள கட்டளையானது ஒரு கணினி எவ்வளவு நேரம் இயங்குகிறது மற்றும் கடந்த 1, 5 மற்றும் 15 நிமிடங்களின் சராசரி கணினி சுமையுடன் எத்தனை பயனர்கள் இணைக்கப்பட்டுள்ளனர் என்பதை அச்சிட பயன்படுகிறது.
தி இலவசம் கணினியின் நினைவக பயன்பாட்டை அச்சிட கட்டளை பயன்படுத்தப்படுகிறது -மீ வெளியீட்டை அச்சிட கொடி பயன்படுத்தப்படுகிறது எம்பிகள் .
உரைக் கோப்பில் தகவலைச் சேமிக்க, திசைமாற்ற ஆபரேட்டர்கள் எனப்படும் சிறப்பு ஆபரேட்டர்களைப் பயன்படுத்துகிறோம். தி > குறிப்பிடப்பட்ட உரை கோப்பில் உரையைச் செருக ஆபரேட்டர் பயன்படுத்தப்படுகிறது. இருப்பினும், கோப்பு ஏற்கனவே இல்லை என்றால், அது உருவாக்கப்படும். அதே நேரத்தில் >> கோப்பில் உள்ள உரையைச் சேர்க்க ஆபரேட்டர் பயன்படுத்தப்படுகிறது. தி தூங்கு சேவையின் செயல்பாட்டை குறைந்தபட்சம் ஒரு நிமிடத்திற்கு பராமரிக்க கட்டளை பயன்படுத்தப்படுகிறது.
இப்போது, தேவையான அனுமதிகளை வழங்குவதன் மூலம் ஸ்கிரிப்டை இயக்கக்கூடியதாக மாற்றவும்.
சூடோ chmod +x myscript.shஸ்கிரிப்ட் இப்போது செயல்படுத்துவதற்கான அனுமதியைப் பெற்றுள்ளது, அடுத்த பகுதிக்குச் செல்வோம்.
குறிப்பு: சேவைக் கோப்பைப் பிழையின்றி உருவாக்க, பாஷ் ஸ்கிரிப்ட்டில் உள்ள கோப்பின் முழுமையான பாதையைப் பயன்படுத்தவும்.
2. சேவை கோப்பை உருவாக்குதல்
அடுத்து, உடன் ஒரு சேவை கோப்பை உருவாக்கவும் .சேவை நீட்டிப்பு. சேவை கோப்பு உருவாக்கப்பட வேண்டும் /etc/systemd/system அடைவு. முதலில், இந்த கோப்பகத்திற்கு செல்லவும் சிடி கட்டளை.
சிடி / முதலியன / systemd / அமைப்புநீங்கள் எந்த கோப்பகத்திலும் சேவை கோப்பை உருவாக்கலாம், பின்னர் அந்த கோப்பை இந்த கோப்பகத்திற்கு நகர்த்தலாம்.
நான் ஒரு சேவை கோப்பை உருவாக்குகிறேன் myservice.service பெயர்.
சூடோ நானோ myservice.serviceஇப்போது, கோப்பில் பின்வரும் வரிகளைச் சேர்க்கவும்.
[ அலகு ]விளக்கம் =எனது சேவை
[ சேவை ]
வகை = எளிமையானது
ExecStart = / தொட்டி / பாஷ் / வீடு / தன்னை / script.sh
மறுதொடக்கம் = தோல்வியில்
[ நிறுவு ]
வான்டட் பை =பல பயனர்.இலக்கு
என்பதை கவனிக்கவும் [அலகு], [சேவை], மற்றும் [நிறுவு] உள்ளன வழக்கு உணர்திறன் . சேவைக் கோப்பு [UNIT] அல்லது [SERVICE] போன்ற ஏதேனும் தவறாகக் குறிப்பிடப்பட்டிருந்தால் அது இயங்காது.
சேவையின் பெயர் இவ்வாறு குறிப்பிடப்பட்டுள்ளது எனது சேவை இல் விளக்கம் உத்தரவு [அலகு] பிரிவு.
தி வகை சேவை ஆகும் எளிய இல் [சேவை] பிரிவு, இது இயல்புநிலை வகை. ஃபோர்க்கிங் , ஒரு ஷாட் , அறிவிக்கவும் , dbus , மற்றும் செயலற்றவை ஆகியவை வேறு சில வகைகளாகும்.
நீங்கள் சேவையை பயனர்-குறிப்பிட்டதாக மாற்ற விரும்பினால், தி பயனர் பயனரின் பயனர்பெயருடன் உத்தரவும் பயன்படுத்தப்படலாம். இந்த உத்தரவைப் பயன்படுத்துவது, சேவை பயனர் அனுமதியைச் சார்ந்ததாக இருக்கும்.
அதே நேரத்தில் ExecStart கட்டளையானது இயங்கக்கூடிய முழு பாதையையும் கொண்டுள்ளது. மேலே உள்ள எடுத்துக்காட்டில், ஸ்கிரிப்ட் கோப்பு myscript.sh இல் சேமிக்கப்படுகிறது /home/sam/ அடைவு. இந்த உத்தரவு உண்மையில் 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 சேவைக் கோப்பை எவ்வாறு உருவாக்குவது மற்றும் சாதாரண பயனர்கள் சேவைக் கோப்பை எவ்வாறு உருவாக்கலாம் என்பதை நாங்கள் கற்றுக்கொண்டோம். மேலும், சேவை கோப்பை அகற்றும் செயல்முறையையும் நாங்கள் காண்கிறோம்.