Natrag na blog

Kako konfigurirati Linux uslugu za automatsko pokretanje nakon ponovnog pokretanja ili rušenja sustava: 1. dio (praktični primjeri)

Kako konfigurirati Linux uslugu za automatsko pokretanje nakon ponovnog pokretanja ili rušenja sustava: 1. dio (praktični primjeri)

Uvod

U računalstvu stvari ne idu uvijek po planu. Često neočekivana rušenja sustava potiču administratore sustava da pokrenu ponovno pokretanje sustava i pojedinačnih usluga. Otkrivanje i ponovno pokretanje svake usluge koja je vašoj aplikaciji potrebna za rad nakon rušenja sustava ili ponovnog pokretanja može biti naporno. U ovom prvom dijelu vodiča od dva dijela, pokazat ćemo vam kako konfigurirati usluge da se automatski pokreću nakon rušenja sustava ili ponovnog pokretanja poslužitelja uz praktične primjere. Drugi dio pokrit će teorijske informacije o tome što smo postigli u prvom dijelu.

Koristit ćemo MySQL bazu podataka kao uslugu za praktične primjere. Međutim, isti se principi primjenjuju i na druge procese koji čine cjeloviti poslužitelj kao što su Nginx, Apache, Redis, ili druge aplikacije. Možete pogledati naše vodiče o tome kako instalirati MySQL, Nginx, i Apache.

U Linux distribucijama postoje tri glavna sustava za inicijalizaciju (init sustava), ovisno o distribuciji koju koristite. Neke distribucije mogu doći s dva ili više init sustava kao što je navedeno u nastavku:

  • System V – stariji init sustav koji se nalazi u starijim distribucijama kao što su:
    • Ubuntu 9.04 i ranije
    • CentOS 5 i ranije
    • Debian 6 i ranije
  • Upstart – korišten u bivšim distribucijama kao što su:
    • CentOS 6
    • Ubuntu 9.10 do Ubuntu 14.10 i Ubuntu 14.04
  • Systemd – korišten u najnovijim distribucijama kao što su:
    • CentOS 7
    • Debian 7 i 8.
    • Ubuntu 15.04 i novije

Pozadina

Uobičajeno je da operacijski sustavi, a posebno Linux i Unix sustavi imaju procese i usluge koji rade u pozadini. Takve usluge mogu biti isporučene sa softverom operacijskog sustava. Neke su možda došle s korisničkim aplikacijama koje instalirate.

Usluge operacijskog sustava uključuju:

  • sshd – To je demon koji omogućuje udaljene veze.
  • cupsd – To je demon koji kontrolira ispis.

Usluge instaliranih aplikacija uključuju:

  • httpd/apache2 – Usluga koja dolazi s web poslužiteljem Apache2.
  • nginx – Usluga koja dolazi s web poslužiteljem Nginx.

Kako bismo osigurali da su naše web aplikacije, baze podataka, poslužitelji e-pošte itd. dostupni, takve usluge moraju raditi neprekidno. Ako ste administrator sustava ili znatiželjni razvojni programer aplikacija, želite osigurati da takve usluge rade neprekidno, a u nesretnom slučaju rušenja sustava, da se automatski pokrenu nakon ponovnog pokretanja sustava. I to je upravo ono što ćemo naučiti u ovom praktičnom vodiču.

Iako je postavljanje upozorenja i kontinuirano praćenje vaše Linux distribucije ključno, neke se Linux usluge mogu same oporaviti ako su dobro konfigurirane, zahvaljujući init sustavima koji upravljaju uslugama.

U Linux distribucijama postoje načini rada koji implementiraju inicijalizaciju sustava pod nazivom razine pokretanja. Da bi se usluga automatski pokrenula, mora se dodati u razinu pokretanja. Svaki sustav sličan Linuxu i Unixu ima četiri uobičajene razine pokretanja kao što je navedeno u nastavku:

  • 0 – Razina pokretanja 0 označava gašenje sustava.
  • 1 – Razina pokretanja 1 označava način rada za jednog korisnika, način spašavanja.
  • 2, 3, 4 – Ove razine pokretanja označavaju stanja u kojima se sustav pokrenuo u višekorisničkom, mrežnom, tekstualnom načinu rada.
  • 5 – Razina pokretanja 5 označava višekorisnički mrežni, grafički način rada.
  • 6 – Razina pokretanja 6 označava ponovno pokretanje sustava.

U ovom vodiču ćete naučiti kako konfigurirati Linux uslugu da se automatski pokreće kada se sustav ponovno pokrene koristeći tri različita init načina objašnjena ranije: System V, Upstart i Systemd.

Preduvjeti

Ovaj praktični vodič pretpostavlja da imate Linux VPS koji možete koristiti za praćenje. Možete iskoristiti besplatno probno razdoblje na Cloudsigma i pokrenuti nekoliko poslužitelja kako biste isprobali naredbe. Možete pratiti naš korak-po-korak vodič o tome kako postaviti svoje Ubuntu poslužitelje.

Poslužitelji koje izradite u ovom vodiču služe isključivo za praćenje praktičnih vježbi i ne biste trebali isprobavati naredbe na produkcijskom poslužitelju jer će mnoge usluge biti prekinute.

Neke od distribucija koje će vam trebati:

  • Ubuntu 9.04 i ranije, ili Debian 6 x64 (koristit će se za demonstraciju System V init sustava)
  • Ubuntu 14.04 x64 (koristit će se za demonstraciju Upstarta)
  • CentOS 7 x64 (koristit će se za demonstraciju systemd-a).

Provjerite jeste li postavili korisnika koji nije root sa sudo privilegijama.  Možete pogledati naš vodič o konfiguriranju datoteke sudoers ovdje.

Korištenje sustava System V

Ovo je najstariji init sustav koji se koristio u ranijim distribucijama Linuxa kao što su:

  • Debian 6 i raniji
  • CentOS 5 i raniji
  • Ubuntu 9.04 i raniji

Većina instalacijskih poslužiteljskih aplikacija kao što su MySQL i Nginx dolazi s init skriptama spremljenim u /etc/init.d direktoriju prema zadanim postavkama. Ove skripte omogućuju im pokretanje nakon ponovnog pokretanja. Međutim, možda nisu konfigurirane za automatsko pokretanje nakon rušenja sustava.

Kontrolni popis za automatsko pokretanje za System V

Prvi korak je provjera dostupnosti funkcionalne Bash init skripte u direktoriju /etc/init.d/service. Da biste omogućili uslugu, u Debian ili Ubuntu distribucijama, koristite update-rc.d naredbu, u CentOS sustavu, koristite chkconfig. Zamijenite sa stvarnim nazivom vaše usluge:

Gornja naredba stvara simboličku poveznicu u /etc/rc2.d direktoriju koji izgleda kao izlaz u nastavku. Nemojte ga sami stvarati jer se automatski generira:

Na dnu datoteke /etc/inittab dodajte redak respawn kao što je prikazano u općenitom primjeru u nastavku. Ne zaboravite ga zamijeniti stvarnom putanjom do pokretačke skripte vaše aplikacije:

Unesite sljedeće naredbe za zaustavljanje i pokretanje usluge:

Zatim ponovno pokrenite poslužitelj:

Kako testirati promjene?

Nakon ponovnog pokretanja poslužitelja, provjerite je li usluga aktivna traženjem broja procesa pomoću naredbe:

Ubijte proces pomoću naredbe:

Nakon pet minuta provjerite je li usluga aktivna i radi li.

Praktična konfiguracija sustava System V sa stvarnom uslugom

U sljedećim koracima isprobat ćemo stvarnu poslužiteljsku aplikaciju kao što je MySQL. Trebali biste imati pristup Debian 6 virtualnom stroju. S računom koji ima sudo privilegije, povežite se s njim pomoću SSH-a ili putty ako ste na Windows radnoj površini.

Korak 1: Instalirajte MySQL

Unesite sljedeću naredbu za instalaciju MySQL-a:

Kada instalacija započne, od vas će se tražiti lozinka za root. Zatim unesite lozinku po svom izboru i potvrdite je. Pričekajte da se instalacija završi, a zatim unesite sljedeću naredbu kako biste započeli osiguravanje MySQL-a:

Od vas će se tražiti lozinka za root koju ste ranije unijeli. Pritisnite N da biste je zadržali. Zatim pritisnite Y da biste prihvatili sljedeće upite za uklanjanje anonimnih korisnika, onemogućavanje udaljene prijave za root i uklanjanje testne baze podataka. Na kraju, prihvatite ponovno učitavanje tablice privilegija kako bi se promjene automatski primijenile.

Time je instalacija MySQL-a završena. Možete provjeriti radi li usluga unosom sljedeće naredbe:

Korak 2: Konfigurirajte MySQL za automatsko pokretanje nakon ponovnog pokretanja

MySQL je prema zadanim postavkama konfiguriran za pokretanje nakon ponovnog pokretanja sustava. Simboličku poveznicu na inicijalizacijsku skriptu MySQL-a možete pronaći u /etc/rc2.d direktoriju. Ove se simboličke poveznice ne stvaraju ručno. Možete koristiti update-rc.d naredbu za omogućavanje i onemogućavanje usluga.

Unesite sljedeću naredbu za ispis sadržaja direktorija:

Provjerite možete li uočiti simboličku poveznicu na MySQL init skriptu:

Slovo S je važno, jer sve dok možete vidjeti S skripta pod zadanim direktorijem razine pokretanja za uslugu, init sustav će pokrenuti uslugu kada se poslužitelj pokrene. Kako biste provjerili hoće li se MySQL automatski pokrenuti nakon ponovnog pokretanja, unesite sljedeću naredbu za ponovno pokretanje sustava:

Vaša ssh veza se prekida tijekom ponovnog pokretanja. Pričekajte minutu ili dvije i ponovno se povežite. Pokrenite sljedeću naredbu kako biste provjerili radi li usluga:

Izlaz će pokazati da usluga radi. To znači da se pokrenula automatski nakon ponovnog pokretanja. Za usluge koje nisu konfigurirane za automatsko pokretanje, morat ćete ih sami konfigurirati.

Možemo onemogućiti MySQL uslugu i ponovno pokrenuti sustav kako bismo testirali hoće li se automatski pokrenuti. U Debian i Ubuntu sustavima možete koristiti update-rc.d naredbu za dodavanje ili uklanjanje usluga iz init sustava. Unesite sljedeću naredbu za onemogućavanje MySQL usluge:

Ponovno pokrenite sustav i ponovno se povežite pomoću ssh-a. Pokušajte se povezati s MySQL-om pomoću sljedeće naredbe:

Dobit ćete MySQL pogrešku poput:

Zatim unesite sljedeću naredbu za ponovno omogućavanje usluge:

Ako ste na CentOS distribuciji, naredba će biti:

Budući da se MySQL u početku nije pokretao, morate ga pokrenuti. Unesite sljedeću naredbu:

Korak 3: Konfiguriranje usluge (MySQL) za automatsko pokretanje nakon rušenja sustava

System V neće automatski pokrenuti proces nakon rušenja. Možemo simulirati rušenje sustava pronalaženjem ID-ja MySQL procesa i njegovim prekidanjem. Unesite sljedeću naredbu kako biste pronašli ID MySQL procesa:

Iz izlaza pronađite MySQL procese. Glavni procesi koji pokreću MySQL su mysqld_safe and mysqld. Zabilježite njihove ID-jeve procesa (to su brojevi) i upotrijebite sljedeće naredbe da ih prekinete:

Provjerite status MySQL usluge pomoću naredbe:

Izlaz će pokazati da je MySQL zaustavljen. Možemo ga ručno ponovno pokrenuti pomoću naredbe service start. Međutim, želimo automatski proces. Da bismo postigli ovo automatsko ponašanje, moramo urediti datoteku /etc/inittab. To je prva datoteka koju System V init čita prilikom pokretanja. Datoteka /etc/inittab sadrži upute o tome kako bi se proces trebao ponašati ako se sruši. Ako je ispravno konfigurirana, ponovno pokreće sustav kada dođe do rušenja. U našem slučaju, želimo osigurati da je MySQL jedna od tih usluga.

Datoteka /etc/inittab iznimno je ključna za Linux distribuciju. Ona određuje hoće li se vaš sustav ponovno pokrenuti ili ne. Ako pogriješite u naredbama, sustav se možda neće pokrenuti kada ga ponovno pokrenete. Kao što smo naveli, nadamo se da ove naredbe isprobavate samo u testnom okruženju poslužitelja, a ne u produkcijskom okruženju.

Prvo napravite kopiju datoteke prije nego što počnete s uređivanjem:

Zatim otvorite datoteku pomoću nano urednika:

Pomaknite se do kraja datoteke i dodajte sljedeći isječak koda:

Gornja naredba ponovno pokreće proces mysql_safe nakon rušenja sustava. Sastoji se od četiri polja odvojena dvotočkama, kao što je objašnjeno u nastavku:

  • ms: Određuje ID za proces.
  • 2345: Određuje razine pokretanja (runlevels) na koje se naredba primjenjuje. U ovom slučaju: razine pokretanja 2, 3, 4, 5.
  • respawn: Određuje radnju. U ovom slučaju, ponovno pokrećemo (respawn) proces.
  • /bin/sh /usr/bin/mysqld_safe: Zadnji dio definira proces – naredbu koja se izvršava za ponovno pokretanje procesa.

Sada pritisnite Ctrl + O i Enter kako biste spremili datoteku. Zatim pritisnite Ctrl + X za zatvaranje uređivača. Unesite sljedeću naredbu za pokretanje usluge:

Ponovno pokrenite poslužitelj, a zatim pokrenite prethodno objašnjene naredbe kako biste pronašli broj procesa. Zatim prekinite procese, počevši s naredbom ps -ef | grep mysql. Pričekajte nekoliko minuta i unesite sljedeću naredbu kako biste provjerili status MySQL-a:

Izlaz bi trebao pokazati da je MySQL usluga aktivna i pokrenuta, što znači da se uspjela ponovno pokrenuti nakon rušenja. Isti postupak možete slijediti i za druge usluge na svom poslužitelju.

Automatsko pokretanje usluga pomoću Upstarta

Upstart je još jedan init sustav koji je prvotno uveden u Ubuntu 6, a kasnije je postao zadani u Ubuntu 9.10. RHEL 6 i njegovi derivati, te Googleov Chrome OS također koriste Upstart init sustav. Za korake u ovom odjeljku trebali biste imati poslužitelj na kojem se izvodi bilo koja od sljedećih distribucija:

  • Ubuntu 9.10 do Ubuntu 14.10, te LTS verzija Ubuntua, tj. Ubuntu 14.04.
  • CentOS 6

Pogledajmo kako možete konfigurirati Upstart datoteke za automatsko pokretanje usluga vašeg poslužitelja u slučaju ponovnog pokretanja ili rušenja sustava. Upstart koristi konfiguracijske datoteke pohranjene pod /etc/init direktorijem za upravljanje uslugama u Linux distribuciji. Većina novijih verzija poslužiteljskih aplikacija kao što su MySQL i Nginx instaliraju vlastite init skripte u /etc/init direktorij. Stoga će se pokrenuti nakon ponovnog pokretanja i nakon rušenja sustava bez da morate išta učiniti.

Kontrolni popis za automatsko pokretanje za Upstart

Evo nekoliko referentnih konfiguracija koje trebate provjeriti kako biste osigurali da je vaša usluga konfigurirana za automatsko pokretanje.

  • Provjerite ima li usluga init skriptu u direktoriju /etc/init/service_name.conf service_name što je stvarni naziv vaše specifične usluge. Trebali biste provjeriti sljedeća dva retka u /etc/init/service_name.conf datoteci:
    • Redak koji sadrži nešto poput start on runlevel [2345]. To označava da će se usluga pokrenuti prilikom ponovnog pokretanja sustava.
    • Redak koji sadrži nešto poput respawn. To označava da će se usluga ponovno pokrenuti (respawn) nakon rušenja sustava.
  • Provjerite da u direktoriju nema datoteke za nadjačavanje usluge: /etc/init/service_name.override. Osim ako ste je vi ili drugi administrator sustava ranije izradili.
  • Unesite sljedeće naredbe za zaustavljanje i pokretanje usluge:
  • Ponovno pokrenite sustav i ponovno se povežite nakon nekoliko minuta. Sada pokrenite nekoliko testova kako biste vidjeli radi li sve
  • Nakon ponovnog pokretanja, provjerite je li usluga aktivna i pokrenuta. Unesite sljedeću naredbu za pretraživanje broja procesa, zamijenite service_name sa stvarnim nazivom usluge koju testirate:
  • Nakon što dobijete broj procesa, unesite sljedeću naredbu za prekid procesa:
  • Pričekajte nekoliko sekundi i ponovno provjerite je li proces aktivan i pokrenut.

Praktična konfiguracija Upstarta sa stvarnom uslugom

U sljedećem odjeljku pokušat ćemo prikazati kako možete koristiti Upstart sa stvarnom uslugom. Testove ćemo provoditi na poslužitelju virtualnog stroja Ubuntu 14.04 s MySQL-om kao uslugom. Povežite se na svoj testni poslužitelj Ubuntu 14.04 pomoću ssh-a ili puttyja ako ste na Windowsima. Prema pravilu, trebali biste koristiti korisnika koji nije root s privilegijama sudo. Nakon što se prijavite, možemo započeti s koracima:

Korak 1: Instalirajte MySQL

Uvijek se sjetite ažurirati svoje pakete prije instaliranja bilo kojeg novog softvera:

Sada unesite sljedeću naredbu za instalaciju MySQL poslužitelja:

Stvorite root lozinku kada se to od vas zatraži. Pričekajte da se instalacija završi i pokrenite sljedeću naredbu kako biste započeli osiguravanje svoje MySQL instalacije:

Slijedite upute, kao što ste to učinili u prethodnom odjeljku. Zatim ispraznite privilegije (flush privileges) kako bi promjene odmah stupile na snagu.

Korak 2: Konfiguriranje usluge (MySQL) za automatsko pokretanje nakon ponovnog pokretanja sustava

MySQL je postavljen da se automatski pokreće nakon ponovnog pokretanja. Gledamo njegove konfiguracijske datoteke samo kako bismo naučili kako možemo konfigurirati naše prilagođene aplikacije da se također automatski pokreću nakon ponovnog pokretanja. Usluga MySQL pokrenuta je automatski nakon instalacije. Međutim, potvrdimo da radi unosom sljedeće naredbe:

Trebali biste vidjeti izlaz koji pokazuje da usluga MySQL radi, otprilike ovako:

Ponovno pokrenite poslužitelj i ponovno se prijavite. Ponovno unesite sljedeću naredbu kako biste testirali radi li:

Izlaz će pokazati da MySQL radi, što znači da je automatski pokrenut nakon ponovnog pokretanja. U ovom slučaju ništa ne treba mijenjati. Međutim, ovo ponašanje možda neće biti isto za druge aplikacije. Možda se pitate kako Upstart init sustav zna da bi trebao automatski pokrenuti MySQL nakon ponovnog pokretanja. MySQL instalira svoju Upstart konfiguracijsku datoteku za pokretanje na lokaciji /etc/init/mysql.conf. Upstart datoteke nisu shell skripte, već tekstualne datoteke s blokovima skripti za događaje prije pokretanja (pre-start) i nakon pokretanja (post-start). Blokovi upućuju Upstart sustav što treba izvršiti kada se MySQLd proces pokreće ili kada je već pokrenut.

Unesite sljedeću naredbu za otvaranje datoteke u uređivaču nano:

Izlaz datoteke može izgledati ovako:

Kao što se vidi, start blok upućuje MySQL da se pokrene na razinama pokretanja (runlevels) 2,3,4,5, a ne 0,1,6. Ako definirate Upstart konfiguraciju za svoju aplikaciju, definirat ćete je u ovom odjeljku. Blok respawn upućuje Upstart što učiniti nakon rušenja. O tome ćemo raspravljati u sljedećem odjeljku, stoga držite datoteku otvorenom u uređivaču nano.

Korak 3: Konfiguriranje usluge (MySQL) za automatsko pokretanje nakon rušenja

Direktiva respawn u datoteci /etc/init/mysql.conf upućuje Upstart da ponovno pokrene uslugu MySQL nakon rušenja.

Direktiva respawn limit upućuje Upstart o tome koliko puta treba pokušati ponovno pokrenuti srušenu uslugu MySQL u intervalu navedenom u sekundama. Prvi argument, (2) označava broj pokušaja. Drugi argument, (5) označava interval u sekundama. Ako nakon rušenja Upstart ne uspije ponovno pokrenuti (respawn) uslugu MySQL unutar praga, ona će ostati zaustavljena. Ovo ponašanje je osmišljeno kako bi se sustav zaštitio od utjecaja na njegovu stabilnost u slučaju da se neprestano pokušavaju ponovno pokrenuti usluge koje se stalno ruše. Sada možete zatvoriti uređivač bez unošenja ikakvih promjena.

Testirajmo hoće li se MySQL automatski ponovno pokrenuti nakon rušenja. Unesite sljedeću naredbu kako biste provjerili status i dobili broj procesa usluge MySQL:

Izlaz bi trebao biti otprilike ovakav. Zabilježite broj procesa jer ćemo ga koristiti kasnije:

Zatim unesite sljedeću naredbu za prekid procesa. Ovo simulira rušenje. Zamijenite s brojem procesa koji ste dobili u prethodnoj naredbi:

Ponovno provjerite status MySQL-a unosom sljedeće naredbe:

Trebao bi ponovno raditi, ali vjerojatno s drugim brojem procesa:

To se događa zbog direktive respawn u /etc/init/mysql.conf datoteka. Ona osigurava da će se u slučaju bilo kakvog kvara sustava MySQL automatski pokrenuti. Stoga će vaša aplikacija koja ovisi o MySQL bazi podataka nastaviti raditi kako se očekuje.

Automatsko pokretanje usluga uz Systemd

Systemd je sustav za inicijalizaciju koji se nalazi u većini novijih Linux distribucija. Vjerojatno je to ono što ćete koristiti kada pokrenete novi VPS. Prvi put je uveden u Fedora. Dolazi s RHEL 7 i njegovim derivatima kao što je CentOS 7. Od Ubuntu 15.04, Systemd ćete pronaći izvorno. Systemd je unatrag kompatibilan s inicijalizacijskim skriptama i naredbama za System V. Stoga bi svaka System V usluga trebala raditi pod Systemd-om. Većina naredbi korištenih u System V i Upstart modificirana je za rad sa Systemd-om.

Uz Systemd, većina poslužiteljskih aplikacija kao što su MySQL i Nginx pokrenut će se automatski nakon ponovnog pokretanja ili gašenja, a da pritom ne morate ništa mijenjati. Za svoje prilagođene aplikacije morate izraditi vlastite init skripte za automatsko ponovno pokretanje usluga.

Za detaljnije informacije o Systemd-u, pogledajte naš vodič o tome kako upravljati Systemd uslugama i jedinicama pomoću Systemctl-a.

Kontrolni popis za automatsko pokretanje za Systemd

Evo nekoliko referentnih konfiguracija koje trebate provjeriti kako biste osigurali da je vaša usluga konfigurirana za automatsko pokretanje sa Systemd-om.

  • Usluga mora imati funkcionalnu Systemd init skriptu koja se nalazi na /etc/systemd/system/multi-user.target.wants/serviceName.service. ServiceName je stvarni naziv usluge koju konfigurirate.
  • Naredba za omogućavanje usluge je:
  • Naredba stvara simboličku poveznicu u /etc/systemd/system/multi-user.target.wants/ direktoriju koji može izgledati slično kao:
  • S tom simboličkom poveznicom na mjestu, omogućit ćete automatsko ponovno pokretanje nakon podizanja sustava.
  • Za aktiviranje promjena, ponovno učitajte sistemski daemon, a zatim ponovno učitajte uslugu pomoću sljedećih naredbi:
  • Da biste testirali hoće li vaše konfiguracije pokrenuti uslugu nakon ponovnog pokretanja, možete ponovno pokrenuti sustav:
  • Kada se sustav ponovno pokrene, potražite broj procesa pomoću naredbe:
  • Zabilježite broj procesa i prekinite ga pomoću naredbe:
  • Pričekajte nekoliko sekundi i ponovno potražite uslugu kako biste provjerili je li ponovno pokrenuta.

Praktična konfiguracija Systemd-a sa stvarnom uslugom

U ovom odjeljku pokušat ćemo konfigurirati MySQL uslugu na virtualnom stroju Ubuntu 20.04.

Korak 1: Povežite se na svoj virtualni privatni poslužitelj (Ubuntu 20.04 ili CentOS 7 x64)

Prijavite se na svoj VPS ili ga izradite s the Cloudsigma panel i povežite se pomoću ssh-a ili putty-ja ako ste na Windowsima. Za ovaj odjeljak vodiča koristimo poslužitelj Ubuntu 20.04. Iste se naredbe mogu primijeniti na CentOS 7. Obavezno koristite ne-root korisnika sa sudo privilegijama.

Korak 2: Instalirajte MySQL (uslugu koju konfiguriramo)

Prvo ažurirajte svoj sustav:

Zatim možete instalirati MySQL poslužitelj pomoću naredbe:

Zatim pokrenite sljedeću naredbu kako biste započeli osiguravanje MySQL-a:

Skripta vas pita želite li postaviti komponentu VALIDATE PASSWORD ili pritisnuti bilo koje slovo za nastavak bez omogućavanja komponente. Slijedite ovu poveznicu kako biste saznali više o MySQL komponenti za provjeru valjanosti lozinke.

Pritisnite 1 da biste to omogućili, a zatim odaberite srednju razinu pritiskom na 1. Unesite jaku lozinku: kombinaciju velikih i malih slova, posebnih znakova i brojeva. Potvrdite lozinku i potvrdite upit koji vas pita želite li koristiti unesenu lozinku kao root lozinku. Za ostale upite pritisnite y kako biste ih prihvatili kao što ste to učinili u prethodnim odjeljcima. Na kraju, isperite privilegije za MySQL kako biste ponovno učitali promjene.

Korak 3: Konfigurirajte MySQL za automatsko pokretanje nakon ponovnog pokretanja

MySQL je konfiguriran da se pokrene nakon ponovnog pokretanja, tako da ne morate raditi nikakve promjene. Međutim, možemo koristiti konfiguracijske datoteke MySQL-a kako bismo naučili kako konfigurirati vlastite prilagođene datoteke.

Prvo provjerite je li MySQL usluga konfigurirana za pokretanje prilikom podizanja sustava. Unesite sljedeću naredbu (imajte na umu da se u CentOS-u MySQL usluga zove mysqld):

Evo izlaza:

CS screenshot

Zatim ponovno pokrenite VPS unosom sljedeće naredbe:

Povežite se natrag pomoću ssh-a i unesite sljedeću naredbu kako biste provjerili status MySQL usluge:

Trebali biste dobiti izlaz sličan onome na snimci zaslona u nastavku:

System Crash 3

Da biste onemogućili MySQL uslugu, unesite sljedeću naredbu:

Izlaz ukazuje na to da su simboličke poveznice na MySQL uslugu uklonjene iz Systemd-a:

screenshot it 4

Možete testirati je li usluga omogućena u Systemd init sustavu unosom sljedeće naredbe:

Izlaz će pokazati da je onemogućena. Ako ponovno pokrenete sustav, MySQL se neće pokrenuti prilikom podizanja sustava:

disabled screenshot

Omogućite uslugu unosom sljedeće naredbe:

Izlaz prikazuje simboličku poveznicu na MySQL uslugu stvorenu u Systemd init-u:

screenshot 5

Kada ponovno pokrenete sustav, MySQL usluga će se automatski pokrenuti.

Korak 4: Konfigurirajte MySQL za automatsko pokretanje nakon rušenja

MySQL je konfiguriran za automatsko ponovno pokretanje nakon rušenja. Pogledajmo kako je ova konfiguracija implementirana u Systemd-u. Systemd koristi unit datoteke za konfiguraciju. Unesite sljedeću naredbu kako biste otvorili mysql.service konfiguracijsku datoteku u nano uređivaču:

Izlaz izgleda ovako:

System Crash 2

Ono što nas zanima je direktiva Restart. Prema definiciji, MySQL će se ponovno pokrenuti ako dođe do pogreške. Direktiva Restart definira što bi se trebalo dogoditi u Systemd-u, baš kao i direktiva Respawn u Upstart-u.

Nemaju sve usluge ovu direktivu. Da biste omogućili ponovno pokretanje usluge nakon rušenja, uvijek možete dodati direktivu Restart pod [Service] blokom konfiguracijske unit datoteke usluge. Ako zaglavlje [Service] ne postoji, dodajte ga. Sada izađite iz uređivača pritiskom na Ctrl + X.

Da biste simulirali rušenje, pronađite ID procesa MySQL-a unosom sljedeće naredbe:

Naredba za provjeru statusa prikazuje ID procesa, u našem slučaju to je 3555:

System Crash 1

Unesite sljedeću naredbu za prekid procesa. Zamijenite ga s ID-om procesa koji ste dobili na svom poslužitelju:

Unesite sljedeću naredbu za provjeru statusa:

Izlaz pokazuje da MySQL radi, ali s novim ID-om procesa. To znači da se automatski ponovno pokrenuo nakon rušenja:

screenshot 8

Zaključak

U ovom vodiču upoznali smo vas s tri sustava inicijalizacije u Linux distribucijama: System V, Upstart i Systemd. Naučili smo kako koristiti bilo koji od init sustava za konfiguriranje vaših neprekidno pokrenutih usluga za automatsko pokretanje nakon ponovnog pokretanja ili rušenja sustava. Ovo bi vam trebalo poslužiti kao polazna točka kada trebate konfigurirati svoje usluge. Prvi dio ove serije bio je uglavnom praktični vodič. drugi dio je više teoretski i sadrži više detalja o tome što smo radili u prvom dijelu. Nemojte još brisati svoje testne poslužitelje jer ćete ih koristiti i u drugom dijelu.

Sretno računanje!

 

author

Manpreet Singh

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.