- 1 1. හැඳින්වීම
- 2 2. systemctl සමඟ සේවා ලැයිස්තුවක් පෙන්වීමේ ක්රමය
- 3 3. systemctl සමඟ මූලික සේවා කළමනාකරණය
- 4 4. උපයෝගී systemctl විකල්ප සහ උසස් තාක්ෂණ
- 5 5. සාමාන්ය ගැටළු සහ ගැටලු විසඳීම
- 6 6. සාරාංශය
- 7 7. නිතර අසන ප්රශ්න (FAQ)
- 7.1 Q1. systemctl සහ service විධානය අතර වෙනස කුමක්ද?
- 7.2 Q2. list-units සහ list-unit-files අතර වෙනස කුමක්ද?
- 7.3 Q3. ස්ථාවර (static) තත්ත්වයේ ඇති සේවා ආරම්භ කළ හැද?
- 7.4 Q4. සේවාව මැස්ක් කර ඇති අතර ආරම්භ කළ නොහැක. මට මොනවා කළ යුතුද?
- 7.5 Q5. සේවා තත්ත්වය බැලීමට GUI ක්රමයක් තිබේද?
- 7.6 Q6. මම custom unit files තැබිය යුත්තේ කොහේද?
1. හැඳින්වීම
ලිනක්ස් භාවිතා කරන විට, සේවා තත්ත්වය පරීක්ෂා කිරීමට හෝ ධාවනය වන ක්රියාවලීන් ලැයිස්තුව බැලීමට අවශ්ය වන බොහෝ අවස්ථා ඇත. එවැනි අවස්ථා වල systemctl විධානය ඉතා ප්රයෝජනවත් වේ.
මෙම විධානය systemd සමඟ ක්රියා කරයි, නවීන ලිනක්ස් බෙදාහැරීම් වල භාවිතා වන ආරම්භක පද්ධතිය සහ සේවා කළමනාකරු. එය සේවා (ඒකක) තත්ත්වය පරීක්ෂා කිරීම, ආරම්භ කිරීම, නවතා දැමීම, නැවත ආරම්භ කිරීම, සහ සේවා ලැයිස්තු පෙන්වීම ඇතුළත් විවිධ කාර්යයන් ලබා දෙයි.
“systemctl service list” නමින් හැඳින්වෙන දෘශ්යකෝණයෙන්, ඔබට වත්මන් ක්රියාත්මක සේවා පමණක් නොව, අක්රිය සේවා සහ ස්වයංක්රීය ආරම්භය සඳහා සැකසූ සේවාද බැලිය හැක, එමඟින් පද්ධතියේ සමස්ත වින්යාසය බහුදෘශ්යකෝණයෙන් අවබෝධ කරගත හැක.
මෙම පරිච්ඡේදය systemctl යනු කුමක්ද යන්න කෙටි විස්තරයක් ලබා දී, මෙම ලිපියෙන් ඔබ ඉගෙන ගන්නා දේවල් සාරාංශ කරයි.
systemctl යනු කුමක්ද?
systemctl යනු systemd-අධාරිත ලිනක්ස් බෙදාහැරීම් වල සේවා, ඉලක්ක, සහ මවුන්ට් ස්ථාන වැනි විවිධ “ඒකක” පාලනය සහ පරීක්ෂා කිරීම සඳහා ප්රමිතියක් වන මෙවලමකි.
උදාහරණයක් ලෙස, Apache (httpd) සහ SSH වැනි සේවා ආරම්භ කිරීම හෝ නවතා දැමීම, සහ ඒවාගේ තත්ත්වය ලැයිස්තු ආකාරයෙන් පෙන්වීමට භාවිතා වේ.
systemd සහ systemctl අතර සම්බන්ධතාවය
systemd යනු ලිනක්ස් ආරම්භ ක්රියාවලීන් සහ සේවා කළමනාකරණය සඳහා මූලික යන්ත්රය වන අතර, SysVinit සහ Upstart වැනි පරණ පද්ධති ප්රතිස්ථාපනය කරයි. systemd සමඟ අන්තර්ක්රියා කිරීමට භාවිතා වන විධාන පේළි මෙවලම systemctl වේ.
අනෙක් වචන වලින්, systemd යනු විධාන මධ්යස්ථානය නම්, systemctl යනු ඒ විධාන නිකුත් කරන මෙහෙයුම්කරු ලෙස ක්රියා කරයි.
මෙම ලිපියෙන් ඔබ ඉගෙන ගන්නා දේ
මෙම ලිපිය පහත ප්රශ්නවලට පිළිතුරු ලබා දෙයි:
- වත්මන් ධාවනය වන සේවා ලැයිස්තුවක් ඔබට කොහොමද බැලිය හැකිද?
- අක්රිය සේවා ඇතුළත් සියලු සේවා ඔබට කොහොමද පෙන්විය හැකිද?
- සේවාවක් බූට් වෙලාවේ ස්වයංක්රීයව ආරම්භ වනදැයි ඔබට කොහොමද පරීක්ෂා කළ හැකිද?
- සේවා ලැයිස්තු ප්රතිඵලය ඔබට කොහොමද විග්රහ කළ යුතුද?
ලිනක්ස් ආරම්භකයන් සඳහා පැහැදිලි බව තහවුරු කිරීම සඳහා, විධාන උදාහරණ සහ ප්රතිඵල විස්තර විස්තරාත්මකව ලබා දේ.
2. systemctl සමඟ සේවා ලැයිස්තුවක් පෙන්වීමේ ක්රමය
ලිනක්ස් පද්ධති පරිපාලනයේ, සේවා ලැයිස්තුව ඉක්මනින් අවබෝධ කර ගැනීම ඉතා වැදගත් වේ. systemctl විධානය භාවිතා කරමින්, ක්රියාත්මක සේවා, අක්රිය සේවා, සහ ආරම්භ සැකසුම් පහසුවෙන් පරීක්ෂා කළ හැක.
මෙම කොටස පහත ත්රිත්ව දෘශ්යකෝණයන් මගින් සේවා ලැයිස්තු කිරීමේ ක්රම විස්තර කරයි:
- ක්රියාත්මක සේවා ලැයිස්තුව
- සියලු සේවා ලැයිස්තුව (අක්රිය සේවා ඇතුළත්)
- සේවා ඒකක ගොනු ලැයිස්තුව (ආරම්භ සැකසුම් ඇතුළත්)
2.1 වත්මන් ක්රියාත්මක සේවා ලැයිස්තුව පෙන්වීම
වර්තමානයේ ධාවනය වන සේවා පරීක්ෂා කිරීමට, පහත විධානය භාවිතා කරන්න:
systemctl list-units --type=service
මෙම විධානය ක්රියාත්මක සේවා ලැයිස්තුව පෙන්වයි. ප්රතිඵලය පහත ක්ෂේත්ර ඇතුළත් වේ:
| Field | Description |
|---|---|
| UNIT | Service name (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service state (e.g., active, inactive, failed) |
| SUB | More detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Service description |
මෙම තොරතුරු, උදාහරණයක් ලෙස, nginx ක්රියාත්මකද, හෝ වත්මන් ක්රියාත්මක සේවා කුමනද යන්න තීරණය කිරීමට උපකාරී වේ.
2.2 අක්රිය සේවා ඇතුළත් සියලු සේවා පෙන්වීම
පෙරනිමියෙන්, list-units ක්රියාත්මක සේවා පමණක් පෙන්වයි. අක්රිය සේවා ඇතුළත් කිරීමට, --all විකල්පය එක් කරන්න.
systemctl list-units --type=service --all
මෙය අක්රිය සේවා සහ කිසි විටෙකත් ආරම්භ නොකළ සේවා පෙන්වයි.
--state= විකල්පය භාවිතා කර සේවා තත්ත්වය අනුව ප්රතිඵල තවත් පෙරහන් කළ හැක:
systemctl list-units --type=service --state=inactive
ඔබට නතර කළ සේවා පමණක් බැලීමට අවශ්ය වන විට මෙය ප්රයෝජනවත් වේ.
2.3 සේවා ඒකක ගොනු ලැයිස්තුව බැලීම
ආරම්භයේදී කුමන සේවා සක්රිය හෝ අක්රිය කර ඇතිද පරීක්ෂා කිරීමට, පහත විධානය භාවිතා කරන්න:
systemctl list-unit-files --type=service
මෙම විධානය සියලු සේවා ඒකක ගොනු ඒවා සක්රිය හෝ අක්රිය තත්ත්වය සමඟ පෙන්වයි.
| STATE | Description |
|---|---|
| enabled | Automatically starts at boot |
| disabled | Does not start automatically |
| static | Cannot be enabled or disabled manually |
| masked | Explicitly disabled and cannot be started |
මෙම ලැයිස්තුව ඔබට දෘශ්යම ලෙස ආරම්භයේදී කුමන සේවා ආරම්භ වනද, සහ වැරදි ලෙස මැස්කූ සේවා හඳුනා ගැනීමට උපකාරී වේ.
3. systemctl සමඟ මූලික සේවා කළමනාකරණය
systemctl විධානය ඔබට සේවා ආරම්භ කිරීම, නවතා දැමීම, නැවත ආරම්භ කිරීම, සහ ආරම්භ හැසිරීම සැකසීමට ඉඩ සලසයි.
3.1 සේවාවක් ආරම්භ කිරීම
.
sudo systemctl start service-name
උදාහරණය:
sudo systemctl start httpd.service
3.2 සේවාව නවත්වීම
sudo systemctl stop service-name
උදාහරණය:
sudo systemctl stop sshd.service
3.3 සේවාව නැවත ආරම්භ කිරීම
sudo systemctl restart service-name
උදාහරණය:
sudo systemctl restart nginx.service
3.4 සේවා තත්ත්වය පරීක්ෂා කිරීම
systemctl status service-name
උදාහරණය:
systemctl status mysql.service
3.5 ස්වයංක්රීය ආරම්භය සක්රිය කිරීම
sudo systemctl enable service-name
උදාහරණය:
sudo systemctl enable docker.service
3.6 ස්වයංක්රීය ආරම්භය අක්රිය කිරීම
sudo systemctl disable service-name
උදාහරණය:
sudo systemctl disable cups.service
3.7 ආරම්භ තත්ත්වය පරීක්ෂා කිරීම
systemctl is-enabled service-name
enabled
4. උපයෝගී systemctl විකල්ප සහ උසස් තාක්ෂණ
4.1 සේවා පරායෝගිකතා ලැයිස්තුගත කිරීම
systemctl list-dependencies service-name
4.2 ඒකක ගොනු අන්තර්ගතය බැලීම
systemctl cat service-name

4.3 ඒකක ගොනු නැවත පූරණය කිරීම
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
4.4 සේවා ලොග් බැලීම
journalctl -u service-name
5. සාමාන්ය ගැටළු සහ ගැටලු විසඳීම
5.1 සේවාව ආරම්භ වීමට අසමත් වූ විට
systemctl status service-name
journalctl -xe
5.2 තත්ත්ව ප්රතිදානයේ දෝෂ පණිවුඩ තේරුම් ගැනීම
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code)
5.3 ආරම්භ කිරීමෙන් පසු වහාම නවත්වන සේවා
- වින්යාස දෝෂ
- පෝට් ගැටුම්
- ගොනු හෝ නාමාවලියන් අස්ථානගත වීම
- අප්රමාණවත් අවසර
5.4 සේවාව මැස්ක් කර ඇති විට
sudo systemctl unmask service-name
6. සාරාංශය
සේවා කළමනාකරණය ලිනක්ස් පද්ධති මෙහෙයුම් වල අත්යවශ්ය කොටසක් වන අතර, systemctl පද්ධති සේවා පාලනය සහ අවබෝධය සඳහා මධ්යම භූමිකාවක් ඉටු කරයි.
7. නිතර අසන ප්රශ්න (FAQ)
මෙම කොටස systemctl සහ සේවා කළමනාකරණය පිළිබඳ සාමාන්ය ප්රශ්නවලට පිළිතුරු ලබා දෙයි.
Q1. systemctl සහ service විධානය අතර වෙනස කුමක්ද?
A1.
systemctl යනු systemd-අධාරිත පද්ධති සඳහා නිර්මාණය කරන ලද සේවා කළමනාකරණ විධානයක් වන අතර, Ubuntu, CentOS, Fedora වැනි නවීන ලිනක්ස් බෙදාහැරීම් වල ප්රමිතිය ලෙස භාවිතා වේ.
එයට විරුද්ධව, service විධානය පැරණි SysVinit-අධාරිත පද්ධති සඳහා භාවිතා කර තිබුණි. එය අනුකූලතාව සඳහා තවමත් පවතිනවා වුවද, systemd පරිසරයන්හි systemctl භාවිතා කිරීම දැඩි ලෙස නිර්දේශ කරයි.
Q2. list-units සහ list-unit-files අතර වෙනස කුමක්ද?
A2.
list-unitsදැනට පූරණය කර ඇති ඒකක (units) පෙන්වයි, එනම් ක්රියාත්මක වන හෝ මෑතකදී භාවිතා කර ඇති සේවා.list-unit-filesසියලු ඒකක ගොනු සහ ඒවායේ සක්රිය කිරීමේ තත්ත්වය (enabled, disabled, ආදිය) පෙන්වයි. සාරාංශයෙන්, එකක් වර්තමාන ක්රියාකාරීත්වය පෙන්වයි, අනෙක් එක සේවා කොන්ෆිගර් කිරීම පෙන්වයි.
Q3. ස්ථාවර (static) තත්ත්වයේ ඇති සේවා ආරම්භ කළ හැද?
A3.
ඔව්, static තත්ත්වයේ ඇති සේවා start විධානය භාවිතා කර මැනවින් ආරම්භ කළ හැක. නමුත්, ඒවා බූට් වෙලාවේ ස්වයංක්රීය ආරම්භය සඳහා සක්රිය කළ නොහැක.
ඒ හේතුව වන්නේ static සේවා වෙනත් ඒකකයන්ගේ පරායෝගිකතා ලෙස ආරම්භ වීමට නිර්මාණය කර ඇති බැවිනි.
Q4. සේවාව මැස්ක් කර ඇති අතර ආරම්භ කළ නොහැක. මට මොනවා කළ යුතුද?
A4.
මැස්ක් කර ඇති සේවාව සම්පූර්ණයෙන් අක්රිය කර ඇති අතර, එය ආරම්භ කළ නොහැක. මෙය විසඳීමට, පහත විධානය භාවිතා කර සේවාව අමැස්ක් කරන්න:
sudo systemctl unmask service-name
අමැස්ක් කිරීමෙන් පසු, ඔබට සේවාව සාමාන්ය ලෙස ආරම්භ කළ හැක.
Q5. සේවා තත්ත්වය බැලීමට GUI ක්රමයක් තිබේද?
A5.
විතරණය අනුව, gnome-system-monitor, KSysGuard, හෝ Cockpit වැනි මෙවලම් graphical interface එකක් හරහා සේවා තත්ත්වය දැකීමට ඔබට ඉඩ සලසයි.
කෙසේ වෙතත්, boot වෙලාවේ සේවා සක්රිය කිරීම හෝ අක්රිය කිරීම වැනි උසස් මෙහෙයුම් සඳහා, systemctl තවමත් වඩාත් විශ්වාසනීය ක්රමය වේ.
Q6. මම custom unit files තැබිය යුත්තේ කොහේද?
A6.
Custom unit files සාමාන්යයෙන් /etc/systemd/system/ තුළ තැබේ. Unit file එකක් සංස්කරණය කිරීමෙන් පසුව හෝ එකතු කිරීමෙන් පසුව, සැමවිටම පහත command එක ක්රියාත්මක කරන්න:
sudo systemctl daemon-reload
ඉන් පසු ඔබට start හෝ enable භාවිතයෙන් සේවාව සාමාන්යයෙන් කළමනාකරණය කළ හැකිය.


