Bekende diensten in Linux kunnen zonder problemen worden toegevoegd bij het opstarten, omdat de meeste hun eigen script hebben, wat wordt gedaan met de commando’s ‘chkconfig’ en ‘systemctl’.
Om bijvoorbeeld de ‘Apache httpd’ service bij het opstarten toe te voegen, voert u een van de volgende commando’s uit, gebaseerd op uw systeembeheerder. Op dezelfde manier kunt u elke bekende service toevoegen die nodig is bij het opstarten.
Voor Sys V init system:
# chkconfig --level 35 httpd on
Voor systemd system:
# systemctl enable httpd
Soms kan het nodig zijn om een aangepast script of commando of service toe te voegen bij het opstarten/opstarten. Als dat zo is, hoe doet u dat dan?
In dit artikel laten we zien hoe u de volgende drie methoden kunt gebruiken om het te implementeren:
- Gebruik /etc/rc.d/rc.local bestand
- Gebruik crontab bestand
- systemd service unit
Method-1: Gebruik /etc/rc.d/rc.local bestand
Het “/etc/rc.local” bestand wordt traditioneel uitgevoerd nadat alle normale computerdiensten zijn gestart aan het einde van het proces van overschakelen naar een multiuser runlevel.
Deze methode werkt ook op het systemd systeem, en u moet de locatie van uw script toevoegen aan het ‘/etc/rc.d/rc.local’ bestand om bij het opstarten uit te voeren.
Zorg ervoor dat het bestand uitvoerbare toestemming heeft om uit te voeren.
# chmod +x /etc/rc.d/rc.local
Om dit in detail te begrijpen, zullen we een eenvoudig script maken zoals hieronder getoond, maar u kunt elk script maken zoals nodig:
# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt
Als het script eenmaal klaar is, stelt u de uitvoerbare toestemming in zoals hieronder getoond:
# chmod +x /opt/scripts/run-script-on-boot.sh
Voeg tenslotte het script toe aan de onderkant van het bestand:
# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh
Herstart uw systeem om dit te verifiëren:
# reboot
Methode-2: Met behulp van crontab bestand
cron voert geplande taken automatisch uit in de backend op een specifieke tijd.
Dit kan eenvoudig worden bereikt met behulp van een speciale string genaamd "@reboot"
met cron job.
@reboot is een speciale string en stelt de gebruiker in staat om elk commando of script bij het opstarten (boot time) uit te voeren.
Dit voorbeeld voert het bestand ‘/opt/scripts/run-script-on-boot.sh’ uit bij het herstarten van het systeem.
We zullen hetzelfde script gebruiken dat in het bovenstaande voorbeeld is gemaakt. Om dit te doen, voeg gewoon de volgende entry toe in het crontab bestand:
# crontab -e@reboot /opt/scripts/run-script-on-boot.sh
Start uw systeem opnieuw om dit te controleren:
# reboot
Methode-3: Het gebruik van systemd service unit
Deze methode werkt alleen op het systemd systeem en het is erg rechttoe rechtaan.
Om dit te doen, moet u een systemd opstartscript maken en het in de “/etc/systemd/system/” directory plaatsen.
Dit is ons voorbeeld van een systemd opstart unit script:
# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target
Als u het unit script in de systemd locatie heeft geplaatst, voert u het volgende commando uit om de systemd configuratiebestanden bij te werken en de service in te schakelen:
# systemctl daemon-reload# systemctl enable sample-on-boot-script.service
Herstart uw systeem om dit te controleren:
# reboot
Bonus Tips:
Als u een script op de achtergrond wilt laten draaien, moet u het achteraankomende ampersand "&"
symbool toevoegen.
/Path/To/My_Script &
Wilt u het commando als een andere gebruiker uitvoeren, gebruik dan het volgende formaat:
su - $USER -c /Path/To/My_Script
Conclusie
Deze handleiding bespreekt in het kort hoe u een aangepast script of commando of service bij het opstarten kunt toevoegen.