Tihtipeale on teenuse spontaanne vähenemine. Kasutaja peab tegelema nende käsitsi taastamisega. Kui see juhtub koduarvutis, ei ole probleemi kui sellist. Veelgi enam - see on hea, sest on reaalne võimalus määrata kindlaks teenuse seisukord, tuvastada vead ja kõrvaldada need. Kuid olukord on hoopis teine, kui tegemist on serverite ja VPS-teenustega, mis peavad pidevalt töötama, et tagada juurdepääs veebisaidile või rakendusele. Selles artiklis vaatleme, kuidas konfigureerida Linuxi teenuste automaatset taaskäivitamist mitmel viisil: croni kaudu perioodiliselt käivitatava monitooringuskriptiga ja systemd-süsteemis.
Vaikimisi on nii, et systemd ei tee teenusega midagi, kui see jookseb kokku. Kuid kasutaja saab alati seadistusi nii seadistada, et teenuse kokkuvarisemise või peatumise korral teenus automaatselt taaskäivitatakse. Selleks kasutatakse direktiivi Restart, mis tuleb lisada Service sektsiooni. Järgnevalt vaatame näite Apache'i teenuse automaatse taaskäivitamise seadistamisest:
$ sudo systemctl edit apache2
[Service]
Restart=on-failure
RestartSec=5s
Siin RestartSec määrab, kui kaua tuleb enne teenuse taaskäivitamist oodata. Kui olete lõpetanud, salvestage muudatused ja käivitage käsk daemon-reload, et konfiguratsiooni uuesti lugeda:
$ sudo systemctl daemon-reload
Järgnevalt, et kontrollida, kas kõik töötab korralikult, vaadake protsessi olekut, lõpetage protsess kill-signaaliga:
$ sudo systemctl status apache2
$ kill -KILL 32091
Kontrollige uuesti staatust, protsess peaks olema käimas. Kui soovite määrata, et initsialiseerimine toimuks iga kord, kasutage spetsiaalset direktiivi Restart: always. Kuid selle kasutamisel tuleb olla väga ettevaatlik, sest see ei võimalda protsessi lõpetada isegi siis, kui see on vajalik. Kui protsess jookseb pidevalt kokku, nii et seda taaskäivitatakse, võite lisada Service sektsioonis piirangu taaskäivituste arvule:
$ sudo systemctl edit apache2
[Service]
StartLimitIntervalSec=500
StartLimitBurst=5
Restart=on-failure
RestartSec=5s
Siin StartLimitBurst
ja StartLimitIntervalSec
näitavad, kui oluline on teenuse taaskäivitamine viis korda, ja kui ta kukub kõik need viis korda kokku, siis jätta ta rahule ja mitte puudutada. Teine direktiiv piirab teenuse taaskäivitamist 500 sekundiga.
See on ilmselt kõige usaldusväärsem ja töökindlam meetod, mis töötab kõigis Linuxi versioonides. Apache'is on lihtne luua automaatne taaskäivitamine skripti abil. Selleks tuleb sisestada käsk:
$ sudo vi /usr/local/bin/apache-monitor.sh
#!/bin/bash
ps -A | grep apache2 || systemctl start apache2
Salvesta fail ja tee see kindlasti käivitatavaks:
chmod ugo+x /usr/local/bin/apache-monitor.sh
Ärge unustage lisada cron-kirje, et skripti perioodiliselt käivitada:
$ sudo crontab -e
*/5 * * * * /usr/local/bin/apache-monitor.sh
See ongi kõik. Jah, teenuse automaatse taaskäivituse seadistamine ei ole nii lihtne, kui see esmapilgul võib tunduda. Kuid see on oluline võime, seega peaksite sellele tähelepanu pöörama - see on seda kindlasti väärt.
Apply the discount by inserting the promo code in the special field at checkout:
Apply the discount by inserting the promo code in the special field at checkout: