Pereiti prie turinio

Slapukų nustatymai

Pasirinkite, kokių rūšių slapukus leidžiate. Pasirinkimą bet kada galite pakeisti per „Slapukų nustatymai“ kiekvieno puslapio apačioje. Privatumo pareiškimas

Būtinieji

Visada įjungti

Reikalingi prisijungti, išsaugoti krepšelį ir įsiminti Jūsų pasirinkimus. Jie visada įjungti.

Kokie slapukai?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsų sesija ir prisijungimo išlaikymas
  • weboke_basket: Jūsų krepšelis
  • wkBtwIncl: kainų rodymas su PVM arba be PVM
  • wok_cookies: Jūsų slapukų pasirinkimas, 12 mėnesių

Matuoja, kuri reklama atveda prie apsilankymo ar užsakymo, kad nemokėtume už neveiksmingas reklamas.

Kokie slapukai?
  • Google Ads per Google Tag Manager (_gcl_au, _gcl_aw), iki 90 dienų
  • OpenAI Ads, reklamos ChatGPT
  • wok_aff: per kurį partnerį atėjote pas mus (partnerių programa), 60 dienų

4,6

Šalis ir kalba

Kiekviena šalis turi savo svetainę su tos šalies kainomis ir PVM.

Peržiūrėti

Paslaugų valdymas su systemd

6 modulis: Paslaugos ir žurnalai · Skaitymo laikas: 10 min.

Mokymosi tikslas: Po šios pamokos galėsite paleisti, sustabdyti ir perkrauti paslaugas, nustatyti, kad jos būtų paleidžiamos įjungiant serverį, skaityti paslaugos būseną ir saugiai pakeisti paslaugos nustatymą naudodami drop-in failą.

Pagrindinės sąvokos: systemd, unit, service, systemctl, start, stop, restart, reload, enable, disable, --now, active, inactive, failed, systemctl --failed, drop-in, systemctl edit, daemon-reload, Restart=

Kas palaiko viską veikiantį?

Serveryje veikia dešimtys programų, kurios turi būti pasiekiamos visada: SSH serveris, žiniatinklio serveris, duomenų bazė, laiko sinchronizavimas. Tokios programos vadinamos paslaugomis (services arba daemons). Kažkas turi jas paleisti įjungiant serverį, stebėti ir paleisti iš naujo, jei jos sugenda. Debian, Ubuntu, AlmaLinux ir Rocky Linux sistemose tai daro systemd. Tai pirmoji programa, kurią paleidžia branduolys (procesas 1), o ji paskui paleidžia visa kita.

systemd dirba su units (vienetais): aprašais to, ką ji turi valdyti. Svarbiausios rūšys:

RūšisPlėtinysPavyzdys
Paslauga.servicenginx.service, ssh.service
Laikmatis (suplanuota užduotis).timerapt-daily.timer (pamoka 4.2, pamoka 6.3)
Lizdas (socket).socketssh.socket Ubuntu 24.04 ir naujesnėse versijose
Tikslas (unit grupė).targetmulti-user.target

Su systemd bendraujate per komandą systemctl. Plėtinio .service galite nerašyti: systemctl status nginx yra tas pats kaip systemctl status nginx.service.

Būsenos skaitymas

Komanda, kurią naudosite dažniausiai:

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...

Skaitykite iš viršaus į apačią:

  • Taškelis prieš pavadinimą yra žalias, kai paslauga veikia, baltas, kai sustabdyta, ir raudonas, kai nepavyko.
  • Loaded nurodo, kur yra unit failas ir ar paslauga paleidžiama įjungiant serverį (enabled), ar ne (disabled).
  • Active nurodo, ar ji šiuo metu veikia (active (running)), yra sustabdyta (inactive (dead)) ar nepavyko (failed), ir nuo kada.
  • Main PID ir CGroup rodo, kurie procesai priklauso paslaugai.
  • Apačioje matomos paskutinės paslaugos žurnalo eilutės. Dažnai jau ten parašyta, kodėl kažkas nepavyksta; daugiau perskaitysite su journalctl (pamoka 6.2).

Paleidimas, sustabdymas, paleidimas iš naujo ir perkrovimas

anna@web1:~$ sudo systemctl start nginx      # paleisti dabar
anna@web1:~$ sudo systemctl stop nginx       # sustabdyti dabar
anna@web1:~$ sudo systemctl restart nginx    # sustabdyti ir vėl paleisti
anna@web1:~$ sudo systemctl reload nginx     # iš naujo nuskaityti konfigūraciją nesustabdant

Skirtumas tarp restart ir reload praktikoje yra svarbus. Atliekant restart paslauga trumpam sustoja: esami ryšiai nutraukiami, o jei naujoje konfigūracijoje yra klaida, paslauga nebepasileidžia ir Jūsų svetainė nustoja veikti. Atliekant reload paslauga iš naujo perskaito savo konfigūraciją ir toliau veikia; jei konfigūracijoje yra klaida, nginx išlaiko senąją. Todėl pakeitę nginx, Caddy, SSH ir fail2ban konfigūraciją naudokite reload ir pirmiausia patikrinkite konfigūraciją (nginx -t, sshd -t, fail2ban-client -t). Ne kiekviena paslauga palaiko reload; systemctl reload-or-restart pasirenka pati.

Įjungiant serverį: enable ir disable

Paleisti ir „paleisti įjungiant serverį“ yra du skirtingi dalykai:

anna@web1:~$ sudo systemctl enable nginx         # nuo šiol paleidžiama įkeliant sistemą
anna@web1:~$ sudo systemctl disable nginx        # nebepaleidžiama įkeliant sistemą
anna@web1:~$ sudo systemctl enable --now nginx   # abu: paleisti dabar ir įkeliant sistemą
anna@web1:~$ systemctl is-enabled nginx
enabled

Klasikinė klaida: paleidžiate paslaugą su start, viskas veikia, o po kito perkrovimo (pavyzdžiui, dėl branduolio atnaujinimo, pamoka 4.2) jos nebėra. Todėl naujai paslaugai naudokite enable --now.

Jei norite būti tikri, kad paslauga niekada nepasileis, net jei jos paprašys kita paslauga, yra mask: sudo systemctl mask <dienst>. Atšaukti galite su unmask.

Kas negerai?

Viena komanda parodo visus nepavykusius units:

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.

Paverskite tai įpročiu, pavyzdžiui, po kiekvieno perkrovimo ir kiekvieno atnaujinimo (pamoka 4.3): sąrašas turi būti tuščias. Išsprendę problemą, pranešimą pašalinkite su sudo systemctl reset-failed.

Visų veikiančių paslaugų apžvalga:

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

Jei veikia kažkas, ko nepažįstate arba nenaudojate, išsiaiškinkite, kas tai yra. Kiekviena nereikalinga paslauga yra perteklinis atakos paviršius (pamoka 5.1 ir 10.1).

Unit failai ir drop-in failai

Unit failas yra tekstinis failas. Paketo versija yra /usr/lib/systemd/system/ (senesnėse sistemose /lib/systemd/system/). Jos niekada nekeiskite: paketo atnaujinimas ją perrašys. Savo pakeitimus įrašykite į drop-in failą: nedidelį failą, kuriame yra tik tos eilutės, kurias norite pakeisti. Paprasčiausia tai padaryti taip:

anna@web1:~$ sudo systemctl edit nginx

Atsidaro redaktorius su tuščia vieta tarp dviejų komentaro eilučių. Tai, ką ten parašysite, pateks į /etc/systemd/system/nginx.service.d/override.conf. Pavyzdžiui: automatiškai paleisti nginx iš naujo, jei jis netikėtai sustoja.

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

Išsaugojus systemctl edit pati perkrauna systemd konfigūraciją. Jei unit failą redaguojate kitu būdu, atlikite tai patys:

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

daemon-reload priverčia systemd iš naujo perskaityti unit failus; pačią paslaugą po to dar reikia paleisti iš naujo, kad ji naudotų pakeitimą. Visą rezultatą (originalą kartu su drop-in failais) pamatysite su systemctl cat nginx.

Restart=on-failure yra geras įprotis svarbioms paslaugoms. Tačiau neslėpkite juo tikros klaidos: paslaugos, kuri kas penkias sekundes nulūžta ir pasileidžia iš naujo, priežasties reikia ieškoti žurnale. Po kelių greitų nesėkmių iš eilės systemd nustoja ją perkrauti (numatytoji riba yra penki paleidimai per dešimt sekundžių) ir nustato paslaugai būseną failed.

AlmaLinux ir Rocky Linux sistemose

systemd ir systemctl veikia lygiai taip pat. Kartais skiriasi tik paslaugų pavadinimai: SSH paslauga vadinasi sshd, distribucijos žiniatinklio serveris vadinasi httpd (Apache) arba nginx, o užkarda firewalld.

Praktikoje

Jūsų paslaugų teikėjo VPS ekrane (WebOké ir kitur) galima išjungti visą serverį, jį perkrauti arba „priverstinai išjungti“. Pastarasis veiksmas prilygsta kištuko ištraukimui: paslaugos negauna galimybės tvarkingai sustoti, todėl gali būti sugadinta duomenų bazė. Serverio viduje naudokite sudo systemctl reboot arba sudo shutdown -h now, o skydelyje įprastą išjungimo arba perkrovimo mygtuką.

Santrauka

  • systemd paleidžia ir stebi visas paslaugas; ją valdote su systemctl.
  • systemctl status parodo, ar paslauga veikia, ar ji paleidžiama įjungiant serverį, ir paskutines žurnalo eilutes.
  • start/stop/restart galioja dabar, enable/disable serverio įjungimui; naujai paslaugai naudokite enable --now.
  • Pakeitus konfigūraciją: pirmiausia patikrinti, tada reload; systemctl --failed turi būti tuščias.
  • Niekada nekeiskite paketo unit failo, o naudokite drop-in failą su systemctl edit.

Testas (quiz)

1. Naują paslaugą paleidote su systemctl start. Perkrovus serverį ji neveikia. Kodėl?



2. Pakeitėte nginx konfigūraciją. Kokia saugiausia veiksmų seka?



3. Kur turi būti Jūsų paties pakeitimas paketo unit failui?



4. systemctl status rodo Loaded: loaded (...; disabled; ...) ir Active: active (running). Ką tai reiškia?



5. Paslauga turi Restart=on-failure ir nulūžta kas kelias sekundes. Koks teisingas šio nustatymo naudojimas?



Užduotis

Užduotis O6.1: Jūsų paslaugų apžvalga. Savo serveryje sudarykite visų veikiančių paslaugų sąrašą (systemctl list-units --type=service --state=running) ir patikrinkite, ar systemctl --failed yra tuščias. Prie kiekvienos paslaugos nurodykite, ką ji daro ir ar Jums jos reikia. Apie vieną paslaugą, kurios nepažinojote, išsiaiškinkite, kas tai yra (systemctl status, man). Po to vienai svarbiai paslaugai nustatykite Restart=on-failure drop-in faile ir su systemctl cat patikrinkite, ar nustatymas ten yra.

Užduotis O6.1: Jūsų paslaugų apžvalga

Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.




Jūsų pažymėti varneliai ir pastabos lieka tik šioje naršyklėje; niekur jų nesiunčiame. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotį atlikote.

Skaitykite daugiau

Akimirką…

Nustatykite domenus

Kiekvienam domenui nustatykite vardų serverius, susiejimą su talpinimu ir tai, kas taps valdytoju.

Įkeliami Jūsų domenai…