Als systeembeheerder moet je heel wat afhandelen. En die lijst wordt elke dag langer en ingewikkelder. En tot overmaat van ramp veranderen er ook nog dingen. Ik weet nog dat ik vroeger, om een Linux service te starten of te stoppen, een terminal venster moest openen, naar /etc/rc.d/ (of /etc/init.d, afhankelijk van welke distributie ik gebruikte) moest gaan, de service zoeken, en het commando /etc/rc.d/SERVICE start|stop|restart geven (waarbij SERVICE de naam is van de service die gestart, gestopt of opnieuw gestart moet worden). Toen ik werkte tussen Redhat en Debian distributies, had ik de neiging om dat te verwarren; ik probeerde /etc/rc.d/service start te geven op de ene distributie, om er vervolgens achter te komen dat het /etc/init.d/service start had moeten zijn.
Dat is nu veranderd. Hoe een service wordt gestopt, gestart en opnieuw gestart is nu volkomen logisch. Beter nog, het is (voor het grootste deel) universeel geworden.
Zoiets.
Hoe je een service start|stop|restart hangt af van of je distributie systemd of init gebruikt. En zelfs dan kun je die services misschien op meerdere manieren bedienen. Laat het me uitleggen.
systemctl vs. service
Dit is de crux van het probleem. Er zijn twee officieel goedgekeurde methoden om services aan te sturen:
- systemctl
- service
Welke je gebruikt, hangt af van of je distributie gebruik maakt van systemd of init. De meeste moderne distributies hebben de overstap gemaakt naar systemd, dus systemctl is de service manager van keuze. Echter, oude gewoontes zijn moeilijk uit te roeien, dus veel beheerders houden nog steeds vast aan het oude service commando. Gelukkig hebben de ontwikkelaars van systemd ervoor gezorgd dat service behouden blijft en omgeleid wordt naar systemctl. Om het nog ingewikkelder te maken, kan het zijn dat je een willekeurige service hebt geïnstalleerd die niet is bijgewerkt met de service of systemctl tools en die je handmatig moet starten met /etc/rc.d (of /etc/init.d).
Dus het kan nog steeds een beetje verwarrend zijn.
Maar we zijn hier op zoek naar best practices; en voor het starten|stoppen|herstarten van applicaties op Linux, beginnen en eindigen best practices met systemctl.
systemctl gebruik
De complicatie eindigt hier. In feite is het stoppen|starten|herstarten van services onder Linux nu vrij eenvoudig. Laten we zeggen dat we CentOS gebruiken en we willen de Apache server stoppen. Om dit te doen openen we een terminal venster en geven het volgende commando:
sudo systemctl stop httpd
De Apache server zou stoppen en je zou worden teruggestuurd naar de bash prompt. Om dezelfde service te starten, geven we het commando:
sudo systemctl start httpd
De service start en u keert terug naar uw bash prompt.
Om dezelfde service opnieuw te starten, geven we het commando:
sudo systemctl restart httpd
De service start opnieuw en u keert terug naar de bash prompt.
De bovenstaande commando’s kunnen worden uitgevoerd op CentOS, Ubuntu, Redhat, Fedora, Debian, en nog veel meer.
service gebruik
Om het interessant te maken, het service commando werkt nog steeds — zelfs voor die distributies die zijn gemigreerd naar systemd en systemctl. Dit betekent dat degenen die instinctief service typen, wanneer ze een service op Linux moeten herstarten, geen “Onbekend commando” foutmelding zullen krijgen. In het geval van service, zal het commando omgeleid worden naar systemctl. Als u het commando service uitvoert op een distributie die systemctl ondersteunt, ziet u duidelijk de omleidingsinformatie (Figuur A).
Figuur A
Het gebruik van de serviceopdracht verschilt een beetje van dat van systemctl. De naam van de service en de start|stop|restart opties zijn verwisseld:
sudo service httpd startsudo service httpd stopsudo service httpd restart
In beide gevallen ziet u dat service wordt omgeleid naar systemctl, maar de service die u probeert te starten|stoppen|restarten slaagt daar wel in.
Het is niet zo ingewikkeld
Ik heb de zaak ingewikkeld gemaakt door de oude methoden te noemen voor het starten, stoppen en herstarten van services in Linux. De waarheid is dat het proces om services in Linux te controleren niet zo ingewikkeld is; je hoeft alleen maar te begrijpen welk commando je moet gebruiken.
Om meer te weten te komen over wat systemctl voor je kan doen, moet je het commando man systemctl geven en de man page doorlezen.
Zie ook
- Hoe u uw Linux-servers kunt monitoren met nmon (TechRepublic)
- Hoe u Stacer installeert voor snelle Linux-systeemoptimalisatie (TechRepublic)
- Hoe u wget gebruikt om bestanden naar uw GUI-loze Linux-server te downloaden (TechRepublic)
- Hoe u kunt voorkomen dat Ubuntu /etc/resolv.conf (TechRepublic)
- Nieuwe en verbeterde Samba-bestandsserver uitgebracht (ZDNET)