Za napredne korisnike Linuxa neophodno je pokretanje, zaustavljanje i ponovno pokretanje Linux usluga. Ove operacije omogućuju korisnicima pristup funkcionalnosti svake usluge. Na primjer, da bi koristili web poslužitelj, korisnici moraju pokrenuti uslugu Apache, ili da bi koristili bazu podataka, korisnici moraju pokrenuti uslugu MySQL. Upravljanje Linux uslugama također je važno za stabilnost sustava i može pomoći u poboljšanju performansi sustava.
Unatoč općem mišljenju, pokretanje, zaustavljanje i ponovno pokretanje usluga u Linuxu je relativno jednostavno. Radit ćemo s Linuxom, ali sve naredbe za pokretanje, zaustavljanje i ponovno pokretanje Linux usluga mogu se pokrenuti na CentOS, Ubuntu, Redhat, Fedora, Debian i mnogim drugim distribucijama.
Sadržaj objave
Koja je razlika između systemctl i servisnih naredbi?
Postoje dva službena alata za upravljanje koji pružaju dosljedan način za pokretanje, zaustavljanje, ponovno pokretanje i upravljanje sistemskim uslugama u Linuxu:
Systemctl nudi napredniju funkcionalnost, uključujući upravljanje ovisnostima, omogućavanje/onemogućavanje usluga i integraciju s journalctl za bilježenje. Usluga je jednostavnija i prvenstveno se koristi za osnovne naredbe za pokretanje, zaustavljanje i status usluge. Često se koristi sa starijim sustavima baziranim na SysVinitu.
Koji ćete koristiti ovisit će o tome koristi li vaša distribucija systemd ili init. Većina modernih distribucija sada koristi systemd, tako da je systemctl upravitelj usluga izbora. Ali neke stare navike teško umiru, pa se mnogi administratori još uvijek drže naredbe usluge starenja.
Srećom, programeri systemd-a pobrinuli su se da zadrže uslugu i preusmjere je na systemctl, tako da će čak i na sustavima temeljenim na systemd-u korištenje usluge i dalje raditi za osnovne zadatke
Da stvar bude još kompliciranija, možda ćete pronaći nasumično odabranu uslugu koju ste instalirali, a koja nije ažurirana ni na uslugu ni na systemctl alate i morate je ručno pokrenuti s /etc/rc.d (ili /etc/init.d). Ali mi ovdje tražimo najbolju praksu, a za pokretanje, zaustavljanje ili ponovno pokretanje aplikacija na Linuxu, najbolja praksa počinje i završava sa systemctl.
Pokretanje Linux usluge
Recimo da želite pokrenuti Apache poslužitelj.
Da biste to učinili:
- Otvorite prozor terminala.
- Pokrenite naredbu
sudo systemctl start httpd.
U ovoj naredbi:
sudogovori Linuxu da izvodite naredbu kao root korisnik.systemctlupravlja systemd uslugama.startgovori naredbi systemctl da pokrene uslugu Apache.httpdje naziv usluge web poslužitelja Apache.
- Nakon što pokrenete naredbu dobit ćete sljedeću poruku:
The service httpd has started successfully.
Bilješka ako je usluga već pokrenuta vidjet ćete sljedeću poruku:
The service httpd is already running.
Uobičajene poruke o pogreškama
Failed to start httpd.service. Unit httpd.service not found.
Ova se pogreška javlja ako paket web poslužitelja Apache nije instaliran ili nedostaje datoteka servisne jedinice. Instalirajte Apache paket koristeći sudo apt install apache2 (na sustavima temeljenim na Debianu) ili sudo yum install httpd (na sustavima temeljenim na Red Hatu) da biste to riješili.
Failed to start httpd.service. Address already in use.
Ovo označava da drugi proces već koristi port na koji se Apache želi vezati (obično port 80). Identificirajte konfliktni proces s sudo lsof -i:80 i zaustavite ga ili promijenite konfiguraciju porta u Apacheovoj konfiguracijskoj datoteci.
Zaustavljanje Linux usluge
Za zaustavljanje usluge Apache:
- Otvorite prozor terminala
- Pokrenite naredbu
sudo systemctl stop httpd. - Sada biste trebali vidjeti sljedeću poruku:
The service httpd has been stopped successfully.
Imajte na umu da ako usluga, u ovom slučaju Apache, nije bila pokrenuta, dobit ćete sljedeću poruku:
Failed to stop service httpd. Unit httpd.service is not loaded.
Instalirajte ga pomoću sudo apt install apache2 (temeljen na Debianu) ili sudo yum install httpd (Na temelju Crvenog šešira).
Ili možete dobiti jednu od sljedećih poruka:
Failed to stop service httpd. Unit httpd.service is not running.
Ovo znači da je Apache već zaustavljen, tako da nije potrebna nikakva radnja.
Failed to stop service httpd. Unit httpd.service is in a failed state.
Ovo sugerira da je Apache naišao na pogrešku i da je u neuspjelom stanju. Za rješavanje problema pokrenite sudo journalctl -xe za pregled detaljnih zapisa, zatim pokušajte ponovno pokrenuti uslugu.
Failed to stop service httpd. Unit httpd.service is locked.
Ova se pogreška pojavljuje ako drugi proces kontrolira uslugu. Pričekajte kratko i pokušajte ponovno ili provjerite pokrenute li zadatke upravljanja pomoću ps aux | grep httpd za prepoznavanje procesa zaključavanja.
Ponovno pokretanje Linux usluge
Za ponovno pokretanje iste usluge (Apache):
- Otvorite prozor terminala.
- Pokrenite naredbu
sudo systemctl restart httpd. - Usluga će se ponovno pokrenuti, a vi ćete se vratiti na bash prompt.
- Dobit ćete sljedeću poruku:
The service httpd has been restarted successfully.
Uobičajene poruke o pogreškama
Ako usluga Apache nije pokrenuta, vidjet ćete sljedeći izlaz:
The service httpd is not running.
Možete ga pokrenuti izravno s sudo systemctl start httpd ili provjerite njegov status na systemctl status httpd.
Također možete vidjeti sljedeće:
Job for httpd.service failed.
To obično ukazuje na problem konfiguracije ili ovisnosti. Za rješavanje problema pregledajte pojedinosti o pogrešci pomoću sudo journalctl -xe i ispravite sve probleme s konfiguracijom.
Pokretanje, zaustavljanje i ponovno pokretanje usluga uz korištenje usluge
Da stvar bude zanimljivija, naredba service i dalje radi — čak i za one distribucije koje su migrirale na systemd i systemctl. To znači da oni koji instinktivno upisuju uslugu kada trebaju ponovno pokrenuti uslugu na Linuxu neće dobiti Unknown command greška.
U slučaju usluge, naredba će se preusmjeriti na systemctl. Zapravo, kada pokrenete naredbu usluge na distribuciji s omogućenim systemctl-om, jasno ćete vidjeti informacije o preusmjeravanju.
Upotreba servisne naredbe malo je drugačija od systemctl. Naziv usluge i mogućnosti pokretanja, zaustavljanja i ponovnog pokretanja se mijenjaju:
sudo service httpd startsudo service httpd stopsudo service httpd restart
U svakom slučaju, vidjet ćete uslugu preusmjerenu na systemctlali usluga koju pokušavate pokrenuti, zaustaviti ili ponovno pokrenuti će uspjeti.
Da biste saznali više o tome što systemctl može učiniti za vas, svakako izdajte naredbu man systemctl i pročitajte stranicu s uputama.





