Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

Teenuste haldamine systemd abil

Moodul 6: Teenused ja logid · Lugemisaeg: 10 minutit

Õpieesmärk: Pärast seda õppetundi oskad teenuseid käivitada, peatada, uuesti laadida ja alglaadimisel käivituma panna, teenuse olekut lugeda ning teenuse seadet drop-in-faili abil turvaliselt muuta.

Põhimõisted: systemd, unit, service, systemctl, start, stop, restart, reload, enable, disable, --now, active, inactive, failed, systemctl --failed, drop-in, systemctl edit, daemon-reload, Restart=

Kes hoiab kõike töös?

Serveris töötab kümneid programme, mis peavad alati olemas olema: SSH-server, veebiserver, andmebaas, aja sünkroonimine. Selliseid programme nimetatakse teenusteks (services ehk daemons). Keegi peab need alglaadimisel käivitama, neil silma peal hoidma ja need uuesti käivitama, kui nad kokku kukuvad. Debianis, Ubuntus, AlmaLinuxis ja Rocky Linuxis teeb seda systemd. See on esimene programm, mille kernel käivitab (protsess 1), ja seejärel käivitab see kõik muu.

systemd töötab unitite abil: need on kirjeldused millestki, mida see peab haldama. Kõige tähtsamad liigid:

LiikLaiendNäide
Teenus.servicenginx.service, ssh.service
Taimer (ajastatud ülesanne).timerapt-daily.timer (õppetund 4.2, õppetund 6.3)
Sokkel.socketssh.socket Ubuntu 24.04 ja uuemates versioonides
Siht (unitite rühm).targetmulti-user.target

systemd-iga suhtled käsuga systemctl. Laiendi .service võid ära jätta: systemctl status nginx on sama mis systemctl status nginx.service.

Oleku lugemine

Käsk, mida kasutad kõige sagedamini:

anna@web1:~$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-11-09 08:12:44 CET; 3h 2min ago
       Docs: man:nginx(8)
    Process: 902 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 905 (nginx)
      Tasks: 3 (limit: 2275)
     Memory: 4.1M (peak: 6.3M)
        CPU: 213ms
     CGroup: /system.slice/nginx.service
             ├─905 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─906 "nginx: worker process"

nov 09 08:12:44 web1 systemd[1]: Starting nginx.service - A high performance web server...
nov 09 08:12:44 web1 systemd[1]: Started nginx.service - A high performance web server...

Loe seda ülevalt alla:

  • Täpp nime ees on töötava teenuse puhul roheline, peatatud teenuse puhul valge ja ebaõnnestunud teenuse puhul punane.
  • Loaded näitab, kus unit-fail asub ja kas teenus käivitub alglaadimisel (enabled) või mitte (disabled).
  • Active näitab, kas teenus praegu töötab (active (running)), on peatatud (inactive (dead)) või on ebaõnnestunud (failed), ja alates millal.
  • Main PID ja CGroup näitavad, millised protsessid teenusele kuuluvad.
  • All on teenuse logi viimased read. Sageli on seal juba kirjas, miks midagi valesti läheb; rohkem näed käsuga journalctl (õppetund 6.2).

Käivitamine, peatamine, taaskäivitamine ja uuesti laadimine

anna@web1:~$ sudo systemctl start nginx      # käivita kohe
anna@web1:~$ sudo systemctl stop nginx       # peata kohe
anna@web1:~$ sudo systemctl restart nginx    # peata ja käivita uuesti
anna@web1:~$ sudo systemctl reload nginx     # loe seadistus uuesti ilma peatamata

Vahe restarti ja reloadi vahel on praktikas oluline. Restardi ajal peatub teenus hetkeks: pooleliolevad ühendused katkevad ja kui uues seadistuses on viga, ei käivitu teenus enam ning su veebisait on maas. Reloadi korral loeb teenus oma seadistuse uuesti sisse, jäädes samal ajal tööle; seadistuse vea korral jätkab nginx vana seadistusega. Kasuta seega nginxi, Caddy, SSH ja fail2bani puhul pärast seadistuse muutmist reloadi ja testi seadistust enne (nginx -t, sshd -t, fail2ban-client -t). Kõik teenused reloadi ei toeta; systemctl reload-or-restart valib ise.

Alglaadimisel: enable ja disable

Käivitamine ja „alglaadimisel käivitamine“ on kaks eri asja:

anna@web1:~$ sudo systemctl enable nginx         # käivitub edaspidi alglaadimisel
anna@web1:~$ sudo systemctl disable nginx        # alglaadimisel enam ei käivitu
anna@web1:~$ sudo systemctl enable --now nginx   # mõlemad: käivita kohe ja alglaadimisel
anna@web1:~$ systemctl is-enabled nginx
enabled

Klassikaline viga: käivitad teenuse käsuga start, kõik töötab, ja pärast järgmist taaskäivitust (näiteks kerneliuuenduse tõttu, õppetund 4.2) on see kadunud. Seepärast kasuta uue teenuse jaoks käsku enable --now.

Kui tahad kindel olla, et teenus ei käivitu kunagi, ka siis mitte, kui mõni teine teenus seda nõuab, on olemas mask: sudo systemctl mask <dienst>. Tagasi saad selle käsuga unmask.

Mis on valesti?

Üks käsk näitab kõiki ebaõnnestunud uniteid:

anna@web1:~$ systemctl --failed
  UNIT                LOAD   ACTIVE SUB    DESCRIPTION
● php8.4-fpm.service  loaded failed failed The PHP 8.4 FastCGI Process Manager

1 loaded units listed.

Tee sellest harjumus, näiteks pärast iga taaskäivitust ja iga uuendust (õppetund 4.3): nimekiri peaks olema tühi. Pärast probleemi lahendamist eemaldad teate käsuga sudo systemctl reset-failed.

Ülevaade kõigist töötavatest teenustest:

anna@web1:~$ systemctl list-units --type=service --state=running

Kui seal töötab midagi, mida sa ei tunne või ei kasuta, uuri välja, mis see on. Iga teenus, mida pole vaja, on tarbetu ründepind (õppetund 5.1 ja 10.1).

Unit-failid ja drop-in-failid

Unit-fail on tekstifail. Paketi versioon asub kaustas /usr/lib/systemd/system/ (vanemates süsteemides /lib/systemd/system/). Seda ära kunagi muuda: paketi uuendus kirjutab selle üle. Oma muudatused paned drop-in-faili: väikesesse faili, mis sisaldab ainult neid ridu, mida tahad muuta. Kõige lihtsam on seda teha nii:

anna@web1:~$ sudo systemctl edit nginx

Avaneb redaktor, kus kahe kommentaarirea vahel on tühi osa. Mida sinna kirjutad, läheb faili /etc/systemd/system/nginx.service.d/override.conf. Näiteks: nginx käivitub automaatselt uuesti, kui see ootamatult peatub.

[Service]
Restart=on-failure
RestartSec=5s

Pärast salvestamist laadib systemctl edit systemd seadistuse ise uuesti. Kui muudad unit-faili mõnel muul viisil, tee ise:

anna@web1:~$ sudo systemctl daemon-reload
anna@web1:~$ sudo systemctl restart nginx

daemon-reload paneb systemd unit-failid uuesti lugema; teenus ise tuleb pärast seda veel taaskäivitada, et muudatus kasutusele võtta. Täielikku tulemust (originaal koos drop-in-failidega) näed käsuga systemctl cat nginx.

Restart=on-failure on hea harjumus tähtsate teenuste puhul. Aga ära peida sellega päris viga: teenuse puhul, mis jookseb iga viie sekundi järel kokku ja käivitub uuesti, tuleb põhjust logist otsida. Pärast mõnda kiiret järjestikust ebaõnnestumist lõpetab systemd taaskäivitamise (vaikimisi piir on viis käivitust kümne sekundi jooksul) ja märgib teenuse olekuks failed.

AlmaLinuxis ja Rocky Linuxis

systemd ja systemctl töötavad täpselt samamoodi. Erinevad on vahel ainult teenuste nimed: SSH-teenus on sshd, distributsiooni veebiserver on httpd (Apache) või nginx ja tulemüür on firewalld.

Praktikas

Sinu teenusepakkuja VPS-i paneel (nii WebOkés kui mujal) võimaldab kogu serveri välja lülitada, taaskäivitada või „sundväljalülitada“. Viimane on sama mis pistiku seinast tõmbamine: teenused ei saa korrektselt peatuda ja andmebaas võib seejuures kahjustuda. Kasuta serveris käske sudo systemctl reboot või sudo shutdown -h now ning paneelis tavalist väljalülitamise või taaskäivitamise nuppu.

Kokkuvõte

  • systemd käivitab ja jälgib kõiki teenuseid; seda juhid käsuga systemctl.
  • systemctl status näitab, kas teenus töötab, kas see käivitub alglaadimisel, ja viimaseid logiridu.
  • start/stop/restart kehtivad praegu, enable/disable alglaadimise kohta; uue teenuse puhul kasuta enable --now.
  • Pärast seadistuse muutmist: kõigepealt testi, siis reload; systemctl --failed peaks olema tühi.
  • Ära kunagi muuda paketi unit-faili, vaid kasuta drop-in-faili käsuga systemctl edit.

Test (quiz)

1. Käivitasid uue teenuse käsuga systemctl start. Pärast serveri taaskäivitust see ei tööta. Miks?



2. Muutsid nginxi seadistust. Milline on kõige turvalisem järjekord?



3. Kuhu kuulub sinu enda muudatus paketi unit-failile?



4. systemctl status näitab Loaded: loaded (...; disabled; ...) ja Active: active (running). Mida see tähendab?



5. Teenusel on Restart=on-failure ja see jookseb iga paari sekundi järel kokku. Milline on selle seade õige kasutus?



Ülesanne

Ülesanne O6.1: Sinu teenuste ülevaade. Koosta oma serveris nimekiri kõigist töötavatest teenustest (systemctl list-units --type=service --state=running) ja vaata, kas systemctl --failed on tühi. Märgi iga teenuse juurde, mida see teeb ja kas sul on seda vaja. Uuri ühe teenuse kohta, mida sa ei tundnud, välja, mis see on (systemctl status, man). Seejärel lisa ühele tähtsale teenusele drop-in-failiga Restart=on-failure ja kontrolli käsuga systemctl cat, et see on seal olemas.

Ülesanne O6.1: Sinu teenuste ülevaade

Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.




Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.

Loe edasi

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…