Orodha ya Huduma za systemctl Imeelezwa: Jinsi ya Kuona, Kusimamia, na Kutatua Tatizo la Huduma za Linux

.## 1. Utangulizi

Unapotumia Linux, kuna hali nyingi ambapo unataka kuangalia hali ya huduma au kuona orodha ya michakato inayotumika. Katika hali hizo, amri ya systemctl ni ya manufaa sana.

Amri hii inafanya kazi na systemd, mfumo wa kuanzisha na msimamizi wa huduma unaotumika katika usambazaji wa kisasa wa Linux. Inatoa wigo mpana wa kazi, ikijumuisha kuangalia hali ya huduma (unit), kuanzisha, kusitisha, kuanzisha upya huduma, na kuonyesha orodha za huduma.

Kutokana na mtazamo wa “orodha ya huduma za systemctl,” unaweza kuona si tu huduma zinazofanya kazi kwa sasa bali pia huduma zilizozimwa na zile zilizosanidiwa kuanzisha kiotomatiki, ikikuruhusu kuelewa usanidi wa mfumo kwa jumla kutoka pembe nyingi.

Sura hii inaelezea kwa kifupi systemctl ni nini na inaorodhesha kile utakachojifunza katika makala hii.

Systemctl ni Nini?

systemctl ni zana ya kawaida ya kudhibiti na kuchunguza “units” mbalimbali kama vile huduma, malengo, na pointi za kuambatisha kwenye usambazaji wa Linux unaotegemea systemd.

Kwa mfano, inatumika kuanzisha au kusitisha huduma kama Apache (httpd) na SSH, pamoja na kuonyesha hali yao katika fomu ya orodha.

Uhusiano kati ya systemd na systemctl

systemd ni mekanizma kuu inayowajibika kwa michakato ya kuanzisha Linux na usimamizi wa huduma, ikibadilisha mifumo ya zamani kama SysVinit na Upstart. Zana ya amri ya mstari inayotumika kuwasiliana na systemd ni systemctl.

Kwa maneno mengine, ikiwa systemd ni kituo cha amri, systemctl hufanya kazi kama opereta anayeitoa maagizo.

Unachojifunza katika Makala Hii

Makala hii inajibu maswali yafuatayo:

  • Unawezaje kuona orodha ya huduma zinazotumika kwa sasa?
  • Unawezaje kuonyesha huduma zote, ikijumuisha zile zisizotumika?
  • Unawezaje kuangalia kama huduma inaanza kiotomatiki wakati wa kuanzisha?
  • Unapaswa kutafsiri vipi matokeo ya orodha za huduma?

Ili kuhakikisha uwazi kwa wanaoanza na Linux, mifano ya amri na maelezo ya matokeo yanatolewa kwa undani.

2. Jinsi ya Kuonyesha Orodha ya Huduma kwa systemctl

Katika usimamizi wa mfumo wa Linux, kuelewa haraka orodha ya huduma ni muhimu sana. Kwa kutumia amri ya systemctl, unaweza kwa urahisi kuangalia huduma zinazofanya kazi, huduma zisizofanya kazi, na mipangilio ya kuanzisha.

Sehemu hii inaelezea mbinu za kuorodhesha huduma kutoka kwa mitazamo mitatu ifuatayo:

  • Orodha ya huduma zinazofanya kazi
  • Orodha ya huduma zote (ikijumuisha zile zisizofanya kazi)
  • Orodha ya faili za unit za huduma (ikijumuisha mipangilio ya kuanzisha)

2.1 Kuonyesha Orodha ya Huduma Zinazofanya Kazi Kwa Sasa

Ili kuangalia huduma zinazotumika kwa sasa, tumia amri ifuatayo:

systemctl list-units --type=service

Amri hii inaonyesha orodha ya huduma zinazofanya kazi. Matokeo yanajumuisha sehemu zifuatazo:

FieldDescription
UNITService name (e.g., ssh.service)
LOADWhether the unit file is loaded
ACTIVEService state (e.g., active, inactive, failed)
SUBMore detailed status (e.g., running, exited, dead)
DESCRIPTIONService description

Taarifa hii inakuwezesha kubaini, kwa mfano, ikiwa nginx inafanya kazi au huduma zipi zinafanya kazi kwa sasa.

2.2 Kuonyesha Huduma Zote Ikijumuisha Zisizofanya Kazi

Kwa chaguo-msingi, list-units inaonyesha tu huduma zinazofanya kazi. Ili kujumuisha huduma zisizofanya kazi, ongeza chaguo --all.

systemctl list-units --type=service --all

Hii inaonyesha huduma zisizofanya kazi na zile ambazo hazijawahi kuanzishwa.

Unaweza pia kuchuja matokeo kwa hali ya huduma ukitumia chaguo --state=:

systemctl list-units --type=service --state=inactive

Hii ni muhimu unapohitaji kuona tu huduma zilizostahili.

2.3 Kuangalia Orodha ya Faili za Unit za Huduma

Ili kuangalia huduma ambazo zimewezeshwa au kuzimwa wakati wa kuanzisha, tumia amri ifuatayo:

systemctl list-unit-files --type=service

Amri hii inaonyesha faili zote za unit za huduma pamoja na hali yao ya kuwezeshwa au kuzimwa.

STATEDescription
enabledAutomatically starts at boot
disabledDoes not start automatically
staticCannot be enabled or disabled manually
maskedExplicitly disabled and cannot be started

Orodha hii inakusaidia kuelewa kwa kuona ni huduma zipi zinaanza wakati wa kuanzisha na kugundua huduma zilizofunikwa kwa makosa.

3. Usimamizi wa Msingi wa Huduma kwa systemctl

Amri ya systemctl inakuwezesha kuanzisha, kusitisha, kuanzisha upya huduma, na kusanidi tabia ya kuanzisha.

3.1 Kuanzisha Huduma

.

sudo systemctl start service-name

Mfano:

sudo systemctl start httpd.service

3.2 Kuzima Huduma

sudo systemctl stop service-name

Mfano:

sudo systemctl stop sshd.service

3.3 Kuanzisha Upya Huduma

sudo systemctl restart service-name

Mfano:

sudo systemctl restart nginx.service

3.4 Kuangalia Hali ya Huduma

systemctl status service-name

Mfano:

systemctl status mysql.service

3.5 Kuwezesha Kuanzisha Kiotomatiki

sudo systemctl enable service-name

Mfano:

sudo systemctl enable docker.service

3.6 Kulemaza Kuanzisha Kiotomatiki

sudo systemctl disable service-name

Mfano:

sudo systemctl disable cups.service

3.7 Kuangalia Hali ya Kuanzisha

systemctl is-enabled service-name
enabled

4. Chaguzi za systemctl Zinazofaa na Mbinu za Juu

4.1 Orodha ya utegemezi wa Huduma

systemctl list-dependencies service-name

4.2 Kuangalia Maudhui ya Faili la Kitengo

systemctl cat service-name

4.3 Kupakia upya Faili la Kitengo

sudo systemctl daemon-reexec
sudo systemctl daemon-reload

4.4 Kuangalia Logi za Huduma

journalctl -u service-name

5. Masuala ya Kawaida na Utatuzi wa Tatizo

5.1 Wakati Huduma Inashindwa Kuanzishwa

systemctl status service-name
journalctl -xe

5.2 Kuelewa Ujumbe wa Makosa katika Matokeo ya Hali

● 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 Huduma Zinazoacha Mara Moja Baada ya Kuanzishwa

  • Makosa ya usanidi
  • Migogoro ya bandari
  • Faili au saraka zilizokosekana
  • Ruhusa zisizotosha

5.4 Wakati Huduma Imefichwa (Masked)

sudo systemctl unmask service-name

6. Muhtasari

Usimamizi wa huduma ni sehemu muhimu ya uendeshaji wa mfumo wa Linux, na systemctl ina jukumu kuu katika kudhibiti na kuelewa huduma za mfumo.

7. Maswali Yanayoulizwa Mara kwa Mara (FAQ)

Sehemu hii inajibu maswali ya kawaida kuhusu systemctl na usimamizi wa huduma.

Q1. Je, ni tofauti gani kati ya systemctl na amri ya service?

A1.
systemctl ni amri ya usimamizi wa huduma iliyoundwa kwa ajili ya mifumo inayotegemea systemd na ni zana ya kawaida inayotumika na usambazaji wengi wa kisasa wa Linux kama Ubuntu, CentOS, na Fedora. Kwa upande mwingine, amri ya service ilitumika kwenye mifumo ya zamani inayotegemea SysVinit. Ingawa bado inaweza kuwepo kwa sababu za ulinganifu, kutumia systemctl inashauriwa sana katika mazingira ya systemd.

Q2. Je, ni tofauti gani kati ya list-units na list-unit-files?

A2.

  • list-units inaonyesha vitengo vilivyopakiwa kwa sasa, ambayo yanamaanisha huduma zinazotekelezwa au ambazo zimekuwa zimetumika hivi karibuni.
  • list-unit-files inaonyesha faili zote za vitengo na hali yao ya kuwezeshwa (zimewezeshwa, zimezimwa, n.k.). Kwa kifupi, moja inaonyesha kile kilicho hai kwa sasa, wakati nyingine inaonyesha jinsi huduma zilivyo sanidiwa.

Q3. Je, huduma katika hali ya static zinaweza kuanzishwa?

A3.
Ndio, huduma katika hali ya static zinaweza kuanzishwa kwa mikono kwa kutumia start. Hata hivyo, haziwezi kuwezeshwa kwa kuanzishwa kiotomatiki wakati wa kuanzisha mfumo. Hii ni kwa sababu huduma za static zimeundwa kuanzishwa kama utegemezi wa vitengo vingine.

Q4. Huduma imefichwa (masked) na haiwezi kuanzishwa. Nifanye nini?

A4.
Huduma iliyofichwa (masked) imezimwa kabisa na haiwezi kuanzishwa. Ili kutatua hili, ondoa ufichaji wa huduma kwa kutumia amri ifuatayo:

sudo systemctl unmask service-name

Baada ya kuondoa ufichaji, unaweza kuanzisha huduma kwa kawaida.

Q5. Je, kuna njia ya GUI ya kuangalia hali ya huduma?

final answer.A5.
Kulingana na usambazaji, zana kama gnome-system-monitor, KSysGuard, au Cockpit hukuruhusu kuona hali ya huduma kupitia kiolesura cha picha.
Hata hivyo, kwa shughuli za juu kama kuwezesha au kuzima huduma wakati wa kuanzisha, systemctl bado ndiyo njia ya kuaminika zaidi.

Q6. Wapi napaswa kuweka faili za vitengo maalum?

A6.
Faili za vitengo maalum kawaida huwekwa katika /etc/systemd/system/. Baada ya kuhariri au kuongeza faili ya kitengo, daima endesha amri ifuatayo:

sudo systemctl daemon-reload

Unaweza kisha kudhibiti huduma kawaida kwa kutumia start au enable.