- 1 1. Utangulizi
- 2 2. Jinsi ya Kuorodhesha Huduma kwa systemctl
- 3 3. Usimamizi wa Msingi wa Huduma kwa systemctl
- 4 4. Chaguzi Muhimu na Mbinu Za Juu za systemctl
- 5 5. Matatizo ya Kawaida na Suluhu
- 6 6. Muhtasari
- 7 7. Maswali Yanayoulizwa Mara kwa Mara (FAQ)
- 7.1 Q1. Ni tofauti gani kati ya amri za systemctl na service?
- 7.2 Q2. Ni tofauti gani kati ya list-units na list-unit-files?
- 7.3 Q3. Je, naweza kuanzisha huduma katika hali ya “static”?
- 7.4 Q4. Siwezi kuanzisha huduma iliyofunikwa (masked). Nifanye nini?
- 7.5 Q5. Je, kuna GUI ya kuorodhesha hali ya huduma?
- 7.6 Q6. Napaswa kuweka wapi faili za vitengo maalum?
1. Utangulizi
Unapotumia Linux, kuna hali nyingi ambapo unaweza kutaka kuangalia hali ya huduma au kuorodhesha michakato yote inayotumika. Katika hali hizo, amri ya systemctl ni ya manufaa sana.
Amri hii inashirikiana na “systemd,” mfumo wa uanzishaji na msimamizi wa huduma kwenye Linux, ikitoa sifa nyingi kama vile kuangalia hali ya huduma (unit), kuanza, kusimamisha, kuanzisha upya, na kuorodhesha huduma.
Haswa unapozungumzia “kuorodhesha kwa systemctl,” unaweza kuelewa muundo wa mfumo wako kutoka pembe mbalimbali—sio tu huduma zinazotumika kwa sasa, bali pia zile zisizotumika, au huduma zilizowekwa kuanzishwa kiotomatiki.
Sehemu hii itatoa muhtasari mfupi wa msingi wa “systemctl,” na kuelezea kile utakachojifunza katika makala hii.
Systemctl ni nini?
systemctl ni zana ya kawaida ya kudhibiti na kuangalia “units” mbalimbali kama huduma, malengo (targets), na pointi za mount kwenye usambazaji wa Linux unaotegemea systemd.
Kwa mfano, unaitumia kuanza au kusimamisha huduma kama Apache (httpd) au SSH, au kuorodhesha hali ya huduma hizo.
Uhusiano kati ya systemd na systemctl
systemd ni mfumo wa msingi wa mchakato wa kuanzisha na usimamizi wa huduma kwenye Linux, ukibadilisha zana za zamani kama SysVinit na Upstart. systemctl ni zana ya mstari wa amri inayoshirikiana moja kwa moja na systemd.
Kwa maneno mengine, ikiwa systemd ni “kidhibiti,” basi systemctl hufanya kazi kama “mtoaji” anayepeleka maagizo.
Unachojifunza katika Makala Hii
Makala hii inajibu maswali yafuatayo yanayoulizwa mara kwa mara:
- Nawezaje kuorodhesha huduma zote zinazotumika kwa sasa?
- Nawezaje kujumuisha huduma zisizotumika katika orodha?
- Nawezaje kuangalia huduma ambazo zimewekwa kuanzishwa kiotomatiki?
- Nawezaje kusoma na kutafsiri matokeo?
Kila mfano wa amri na matokeo yake yameelezwa kwa umakini kwa wanaoanza, hivyo jisikie huru kufuata hadi mwisho.
2. Jinsi ya Kuorodhesha Huduma kwa systemctl
Katika usimamizi wa mifumo ya Linux, kuelewa haraka orodha ya huduma ni muhimu. Kwa kutumia amri ya systemctl, unaweza kuona si tu huduma zinazotumika kwa sasa bali pia zile zisizotumika na zile zilizopangwa kuanzishwa kiotomatiki.
Hapa, tutaelezea mitazamo mitatu kuu ya kuorodhesha huduma:
- Orodha ya huduma zinazotumika (active)
- Orodha ya huduma zote (ikiwa ni pamoja na zisizotumika)
- Orodha ya faili za unit za huduma (ikiwa ni pamoja na mipangilio ya kuanzisha)
2.1 Kuorodhesha Huduma Zinazotumika Kwa Sasa
Ili kuangalia huduma “zinazoendesha” kwenye mfumo wako, tumia amri hii ya msingi:
systemctl list-units --type=service
Amri hii inaonyesha orodha ya huduma zinazotumika (running) kwa sasa. Matokeo yanajumuisha safu zifuatazo:
| Column | Description |
|---|---|
| UNIT | Name of the service (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service status (e.g., active, inactive, failed) |
| SUB | Detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Brief description of the service |
Taarifa hii inakusaidia kuelewa, kwa mfano, ikiwa nginx inaendesha sasa au huduma zipi ziko katika hali ya “active.”
2.2 Kuorodhesha Huduma Zote, Ikijumuisha Zisizotumika
Kwa chaguo-msingi, list-units inaonyesha huduma zinazotumika kwa sasa. Ili kujumuisha huduma zisizotumika, ongeza chaguo --all:
systemctl list-units --type=service --all
Chaguo hili linakuwezesha kuona huduma katika hali ya “inactive” au zile ambazo hazijawahi kuanzishwa.
Ikiwa unataka kupunguza matokeo zaidi, tumia chaguo --state= ili kuchuja kwa hali maalum:
systemctl list-units --type=service --state=inactive
Hii ni muhimu unapohitaji kuangalia tu huduma zilizostahili, kwa mfano.
2.3 Kuorodhesha Faili za Unit za Huduma
Ikiwa unataka kujua si tu hali ya sasa bali pia huduma zipi zimewezeshwa kuanzishwa kiotomatiki, tumia amri ifuatayo:
systemctl list-unit-files --type=service
Amri hii inaonyesha orodha ya faili za unit za huduma (faili za usanidi) na inakuwezesha kuangalia hali ya kuwezeshwa/kusizoweshwa (enabled, disabled, n.k.).
| STATE Value | Description |
|---|---|
| enabled | Automatically enabled at boot |
| disabled | Not enabled at boot; must be started manually |
| static | Started as a dependency of other units; cannot be enabled/disabled directly |
| masked | Explicitly disabled and cannot be started (protected) |
Kukagua orodha hii kunakusaidia kuelewa kwa macho gani huduma zinaanza wakati wa boot na ikiwa kuna huduma yoyote iliyofichwa kimakusudi.
3. Usimamizi wa Msingi wa Huduma kwa systemctl
Kamandi ya systemctl haitafuata tu hali ya huduma bali pia inakuruhusu kuanza, kusimamisha, kuanza upya, na kuwezesha au kulemaza huduma. Hapa kuna shughuli za msingi zinazotumiwa mara kwa mara katika usimamizi wa mfumo wa Linux.
Kudhibiti amri hizi ni muhimu kwa usimamizi wa kila siku wa seva na utatuzi wa matatizo.
3.1 Kuanza Huduma
Ili kuanza huduma maalum kwa mikono, tumia amri ndogo ya start:
sudo systemctl start [service name]
Mfano, ili kuanza Apache (httpd):
sudo systemctl start httpd.service
Hii inaanza huduma mara moja. Ikiwa unataka iendelee baada ya kuwasha upya, tumia enable pia (imeelezwa chini).
3.2 Kusimamisha Huduma
Ili kusimamisha huduma, tumia amri hii:
sudo systemctl stop [service name]
Mfano:
sudo systemctl stop sshd.service
Huduma inabaki imesimamishwa hadi utakapoianza tena wazi.
3.3 Kuanza Upya Huduma
Ili kuanza upya huduma (kwa mfano, baada ya mabadiliko ya usanidi), tumia:
sudo systemctl restart [service name]
Mfano:
sudo systemctl restart nginx.service
Kuanza upya daima husimamisha na kisha kuanza huduma, bila kujali hali yake ya sasa.
3.4 Kukagua Hali ya Huduma
Ili kukagua hali ya kina ya huduma, tumia amri ndogo ya status:
systemctl status [service name]
Mfano:
systemctl status mysql.service
Hii inaonyesha hali ya sasa inayofanya kazi, kitambulisho cha mchakato (PID), muhtasari wa kumbukumbu, na zaidi—msaidizi sana kwa utatuzi wa matatizo.
3.5 Kuwezesha Huduma Ili Kuanza Kiotomatiki
Ili kuhakikisha huduma inaanza kiotomatiki wakati wa kuwasha, tumia amri ndogo ya enable:
sudo systemctl enable [service name]
Mfano:
sudo systemctl enable docker.service
Sasa, huduma itazinduliwa kiotomatiki katika kuwasha mfumo kinafuu.
3.6 Kulemaza Huduma Kutoka Kuanza Kiitomatiki
Ili kulemaza kuanza kiotomatiki, tumia amri ya disable:
sudo systemctl disable [service name]
Mfano:
sudo systemctl disable cups.service
Hii inazuia huduma kuanza wakati wa kuwasha.
3.7 Kukagua Kama Huduma Imewezeshwa
Ili kukagua kama huduma imewaezeshwa (inaanza kiotomatiki), tumia is-enabled:
systemctl is-enabled [service name]
Mfano wa pato:
enabled
Hii inakuambia haraka sera ya kuanza ya huduma.
4. Chaguzi Muhimu na Mbinu Za Juu za systemctl
Kamandi ya systemctl inasaidia si shughuli za msingi za kuanza/kusimamisha pekee, bali pia kazi za usimamizi wa juu. Hapa kuna chaguzi na mbinu rahisi ambazo unapaswa kujua.
Kutumia vipengele hivi kunaweza kuboresha sana ufanisi wako wa usimamizi wa huduma za Linux.
4.1 Kuorodhesha Utegemezi wa Huduma
Katika Linux, huduma zingine hutegemea vitengo vingine (huduma, milima, malengo, n.k.). Ili kukagua utegemezi, tumia list-dependencies:
systemctl list-dependencies [service name]
Mfano:
systemctl list-dependencies nginx.service
Amri hii inaonyesha vitengo vinavyohusiana katika muundo wa mti—msaidizi kwa kuchambua mpangilio wa kuanza na utegemezi usio wa moja kwa moja.
4.2 Kuangalia Yaliyomo ya Faili la Kitengo
Ikiwa unataka kukagua maelezo ya usanidi wa kitengo, unaweza kuonyesha faili halisi ya kitengo:
systemctl cat [service name]
Mfano:
systemctl cat ssh.service
Hii inaonyesha njia ya faili na yaliyomo yake, ikikuruhusu kuona haraka mipangilio yoyote ya kibinafsi.

4.3 Kupakia Upya Faili za Kitengo
Ikiwa utabadilisha faili la kitengo kwa mikono, tumia daemon-reload ili kutumia mabadiliko:
sudo systemctl daemon-reexec
Au, kwa kawaida zaidi:
sudo systemctl daemon-reload
Hii inapakia upya faili za kitengo katika systemd, ili mabadiliko yatumike. Ikiwa mipangilio haionekani kutumika, jaribu amri hii kwanza.
4.4 Kukagua Kumbukumbu za Huduma (Nyongeza)
Ingawa si amri ya systemctl yenyewe, journalctl ni muhimu kwa kukagua kumbukumbu za huduma:
journalctl -u [service name]
Mfano:
journalctl -u docker.service
Hii inakuruhusu kukagua makosa ya kuanza na historia ya kuanza upya—hatua muhimu ya utatuzi wa matatizo.
5. Matatizo ya Kawaida na Suluhu
When managing services with systemctl, things don’t always go as expected. This section explains common issues and how to resolve them.
Be prepared for “service won’t start” or “can’t find the cause” by knowing these basic troubleshooting steps.
5.1 Utatuzi wa Tatizo Linaposhindwa Kuanzisha Huduma
Unaweza kuona makosa kama:
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
Ili kubaini chanzo, angalia hatua zifuatazo kwa mpangilio:
- Angalia hali
systemctl status [service name]
- Angalia logi za makosa
journalctl -xe
- Pakua tena faili za vitengo Ikiwa umerekebisha faili ya vitengo, pakua tena kwa:
sudo systemctl daemon-reload
- Angalia migogoro ya bandari Angalia kama mchakato mwingine tayari unatumia bandari:
sudo netstat -tulnp | grep [port number]
5.2 Jinsi ya Kusoma Ujumbe wa Makosa katika Amri ya status
Unapoendesha systemctl status, unaona hali ya huduma pamoja na ujumbe wa logi wa hivi karibuni. Kwa mfano:
● 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) since Fri 2025-04-18 12:00:00 JST; 5s ago
Process: 12345 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Hii inakuwezesha kugundua haraka kushindwa (mf., “Active: failed”, “status=1/FAILURE”) na mchakato uliorudisha kosa.
Mstari wa Loaded unaonyesha njia ya faili ya vitengo, na kufanya iwe rahisi kutambua faili ya usanidi wa kuhariri.
5.3 Huduma Zinapokoma Bila Kutarajiwa
Kama huduma inaanza kisha ikakoma mara moja, sababu za kawaida ni pamoja na:
- Makosa katika faili za usanidi
- Migogoro ya bandari
- Faili au saraka zinazohitajika hazipo
- Ruhusa zisizotosha za utekelezaji
Ili kutatua, jaribu yafuatayo:
- Angalia na thibitisha faili za usanidi (mf.,
nginx -tauapachectl configtest) - Fuata logi za kina kwa
journalctl -u [service name] - Hakikisha saraka zinazohitajika (mf.,
/var/run/xxx) zipo; ziunde ikiwa zinahitajika
5.4 Imeshindwa Kuanzisha Huduma katika Hali ya masked
Ukiona kosa hili:
Failed to start example.service: Unit example.service is masked.
Huduma iko katika hali ya masked (imezimwa kabisa na kuzuia kuanzishwa). Ondoa mask kwa:
sudo systemctl unmask [service name]
Kisha unaweza kuanzisha huduma kama kawaida.
6. Muhtasari
Usimamizi wa huduma katika Linux ni sehemu muhimu ya shughuli za kila siku za mfumo. Amri ya systemctl ina jukumu kuu, ikikuruhusu kuangalia orodha za huduma na kuzisimamia kwa ufanisi.
Makala huu umeelezea mambo yafuatayo kwa kutumia neno kuu “systemctl list”:
Unachoweza Kufanya na Amri ya systemctl (Mapitio)
- Angalia orodha ya huduma
- Onyesha huduma zinazotumika kwa sasa (
list-units --type=service) - Orodhesha huduma zote ikijumuisha zile zisizotumika (
--allau chaguzi za--state=) - Onyesha faili za vitengo vya huduma na hali yao ya kuanzisha (
list-unit-files) - Operesheni za msingi za huduma
- Anzisha, simamisha, anzisha upya, na angalia hali (start / stop / restart / status)
- Wezesha/zimisha kuanzisha kiotomatiki (enable / disable / is-enabled)
- Operesheni za hali ya juu na utatuzi wa matatizo
- Angalia utegemezi, tazama faili za vitengo, pakua tena usanidi
- Chunguza makosa kwa kutumia logi na ukaguzi wa hali
Mazoezi Mazuri ya Usimamizi wa Huduma
- Daima angalia hali kabla ya kufanya mabadiliko (amri ya
status) - Jua hali ya kuanzisha kiotomatiki (amri ya
is-enabled) - Baada ya kufanya mabadiliko, daima endesha
daemon-reload - Kwa matatizo, angalia logi kwa
journalctl
Ukaguzi wa kina kama haya huhakikisha utoaji wa huduma thabiti na utatuzi wa matatizo kwa haraka katika usimamizi wa mifumo ya Linux.
Kwa Kujifunza Zaidi
Ikiwa ungependa kujifunza zaidi, fikiria kuchunguza mada kama:
- malengo ya systemd (na tofauti na viwango vya uendeshaji)
- Kazi zilizopangwa na
systemd-timer - Jinsi ya kuunda na kusimamia faili za vitengo maalum
7. Maswali Yanayoulizwa Mara kwa Mara (FAQ)
Sehemu hii inahitimisha maswali yanayoulizwa mara kwa mara na majibu kuhusu amri ya systemctl na orodha ya huduma. Hata kama unaelewa misingi, pitia upya haya kwa marejeleo ya haraka.
Q1. Ni tofauti gani kati ya amri za systemctl na service?
A1.
systemctl ni amri ya usimamizi wa huduma inayotegemea systemd, na ni kiwango cha kawaida kwa usambazaji wengi wa Linux wa kisasa (Ubuntu, CentOS, Fedora, n.k.).
Kwa upande mwingine, service inatoka kwenye mfumo wa zamani wa SysVinit. Ingawa wakati mwingine inabaki kwa ajili ya ulinganifu, systemctl inapendekezwa kwa mazingira ya systemd.
Q2. Ni tofauti gani kati ya list-units na list-unit-files?
A2.
list-unitsinaonyesha vitengo vilivyopakiwa kwa sasa (vikiwemo vinavyofanya kazi au vilivyotumika awali).list-unit-filesinaorodhesha faili zote za vitengo na hali yao ya kuwezeshwa/kuzima. Fikiria kama tofauti kati ya “kinachoendesha sasa” na “kinachopangwa kuendesha”.
Q3. Je, naweza kuanzisha huduma katika hali ya “static”?
A3.
Ndiyo, unaweza kwa mikono start huduma katika hali ya static, lakini huwezi enable ili ianze kiotomatiki. Hii ni kwa sababu huduma za static zimeundwa kuanzishwa kama utegemezi wa vitengo vingine.
Q4. Siwezi kuanzisha huduma iliyofunikwa (masked). Nifanye nini?
A4.
masked inamaanisha “imezimwa kabisa.” Ondoa kifuniko kwa:
sudo systemctl unmask [service name]
Baada ya hapo, unaweza kuianzisha kawaida.
Q5. Je, kuna GUI ya kuorodhesha hali ya huduma?
A5.
Kulingana na usambazaji wako, zana kama gnome-system-monitor, KSysGuard, au Cockpit zinaweza kukuruhusu kuangalia hali ya huduma kupitia GUI. Hata hivyo, kwa shughuli za juu, systemctl bado ni njia ya kuaminika zaidi.
Q6. Napaswa kuweka wapi faili za vitengo maalum?
A6.
Kwa kawaida, weka kwenye /etc/systemd/system/. Baada ya kuhariri, usisahau kuendesha:
sudo systemctl daemon-reload
Kisha simamia kama kawaida kwa start au enable.


