Dažnai paslaugos sumažėja savaime. Naudotojas turi pasirūpinti jų atkūrimu rankiniu būdu. Jei tai atsitinka namų kompiuteryje, problemos kaip tokios nėra. Dar daugiau - tai gerai, nes atsiranda reali galimybė nustatyti paslaugos būklę, nustatyti gedimus ir juos pašalinti. Tačiau situacija visiškai kitokia, kai kalbama apie serverius ir VPS paslaugas, kurie turi nuolat veikti, kad būtų galima naudotis svetaine ar taikomąja programa. Šiame straipsnyje apžvelgsime, kaip konfigūruoti automatinį "Linux" paslaugų paleidimą iš naujo keliais būdais: naudojant stebėjimo scenarijų, periodiškai paleidžiamą per "cron", ir "systemd".
Pagal numatytuosius nustatymus systemd nieko nedarys su paslauga, jei ji sugenda. Tačiau naudotojas visada gali sukonfigūruoti nustatymus taip, kad sugedus ar sustojus tarnybai ji būtų automatiškai paleista iš naujo. Šiam tikslui naudojama direktyva Restart (paleisti iš naujo), kurią reikia įtraukti į skyrių Service (Paslauga). Toliau panagrinėkime automatinio "Apache" paslaugos paleidimo iš naujo konfigūravimo pavyzdį:
$ sudo systemctl edit apache2
[Service]
Restart=on-failure
RestartSec=5s
Čia RestartSec nurodoma, kiek laiko laukti prieš paleidžiant paslaugą iš naujo. Baigę išsaugokite pakeitimus ir paleiskite komandą daemon-reload, kad vėl perskaitytumėte konfigūraciją:
$ sudo systemctl daemon-reload
Toliau, norėdami patikrinti, ar viskas veikia tinkamai, pažvelkite į proceso būseną, nutraukite procesą signalu kill:
$ sudo systemctl status apache2
$ kill -KILL 32091
Dar kartą patikrinkite būseną, procesas turėtų būti vykdomas. Norėdami nustatyti, kad iniciacija būtų paleidžiama kiekvieną kartą, naudokite specialią direktyvą Restart: always. Tačiau naudodami ją turėtumėte būti labai atsargūs, nes ji neleis nutraukti proceso, net jei tai būtina. Jei procesas nuolat sutrinka, todėl jį reikia paleisti iš naujo, į skyrių Service (Paslauga) galite įtraukti paleidimų skaičiaus apribojimą:
$ sudo systemctl edit apache2
[Service]
StartLimitIntervalSec=500
StartLimitBurst=5
Restart=on-failure
RestartSec=5s
Čia StartLimitBurst
ir StartLimitIntervalSec
nurodo, kad svarbu paslaugą paleisti iš naujo penkis kartus, o jei ji sugenda visus tuos penkis kartus, palikti ją ramybėje ir neliesti. Antroji direktyva apriboja paslaugos pakartotinį paleidimą iki 500 sekundžių.
Tai bene patikimiausias ir saugiausias būdas, veikiantis visose "Linux" versijose. Programoje "Apache" lengva sukurti automatinį paleidimą iš naujo naudojant skriptą. Norėdami tai padaryti, turite įvesti komandą:
$ sudo vi /usr/local/bin/apache-monitor.sh
#!/bin/bash
ps -A | grep apache2 || systemctl start apache2
Įrašykite failą ir būtinai padarykite jį vykdytinu:
chmod ugo+x /usr/local/bin/apache-monitor.sh
Nepamirškite pridėti "cron" įrašo, kad scenarijus būtų periodiškai paleidžiamas:
$ sudo crontab -e
*/5 * * * * /usr/local/bin/apache-monitor.sh
Tai viskas. Taip, nustatyti automatinį paslaugos paleidimą iš naujo nėra taip paprasta, kaip gali pasirodyti iš pirmo žvilgsnio. Tačiau tai svarbi galimybė, todėl turėtumėte į ją atkreipti dėmesį - tikrai verta.
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: