Välkända tjänster i Linux kan läggas till vid uppstart utan problem, eftersom de flesta av dem har ett eget skript, vilket görs med hjälp av kommandona ”chkconfig” och ”systemctl”.

För att till exempel lägga till tjänsten ”Apache httpd” vid uppstart kör du ett av följande kommandon baserat på din systemhanterare. På samma sätt kan du lägga till vilken välkänd tjänst som helst vid uppstart som krävs.

För Sys V init system:

# chkconfig --level 35 httpd on

För systemd system:

# systemctl enable httpd

Ibland kan det hända att du behöver lägga till ett anpassat skript eller ett eget kommando eller en egen tjänst vid uppstart/start. Om så är fallet, hur gör du det?

I den här artikeln ska vi förstå hur du använder följande tre metoder för att implementera det:

  • Användning av /etc/rc.d/rc.local-fil
  • Användning av crontab-fil
  • systemd-tjänstenhet

Metod-1: Använda /etc/rc.d/rc.local-fil

Den ”/etc/rc.local”-filen körs traditionellt efter att alla normala datortjänster har startats i slutet av processen för att växla till en körnivå för flera användare.

Denna metod fungerar även på systemd-systemet, och du måste lägga till platsen för ditt skript i filen ”/etc/rc.d/rc.local” för att köras vid uppstart.

Säkerställ att filen har körningsbehörighet för att köras.

# chmod +x /etc/rc.d/rc.local

För att förstå detta i detalj kommer vi att skapa ett enkelt skript enligt nedan, men du kan skapa vilket skript som helst efter behov:

# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt

När skriptet är klart ställer du in behörigheten för körning enligt nedan:

# chmod +x /opt/scripts/run-script-on-boot.sh

För att slutligen lägga till skriptet längst ner i filen:

# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh

Starta om systemet för att verifiera detta:

# reboot

Metod-2: Användning av crontab-fil

cron utför schemalagda jobb automatiskt i backend vid en viss tidpunkt.

Detta kan enkelt åstadkommas genom att använda en särskild sträng som heter "@reboot" med cron-jobbet.

@reboot är en särskild sträng och gör det möjligt för användaren att köra vilket kommando eller skript som helst vid uppstart (starttid).

Detta exempel kör filen ”/opt/scripts/run-script-on-boot.sh” vid omstart av systemet.

Vi kommer att använda samma skript som skapades i exemplet ovan. Lägg därför bara till följande post i crontab-filen:

# crontab -e@reboot /opt/scripts/run-script-on-boot.sh

Starta om systemet för att kontrollera detta:

# reboot

Metod-3: Använda systemd-tjänstenheten

Den här metoden fungerar bara på systemd-systemet och är mycket enkel.

För att göra det måste du skapa ett startskript för systemd och placera det i katalogen ”/etc/systemd/system/”.

Detta är vårt exempel på ett enhetsskript för systemd-start:

# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target

När du har placerat enhetsskriptet på systemd-platsen kör du följande kommando för att uppdatera systemd-konfigurationsfilerna och aktivera tjänsten:

# systemctl daemon-reload# systemctl enable sample-on-boot-script.service

Starta om systemet för att kontrollera detta:

# reboot

Bonustips:

Om du vill köra ett skript i bakgrunden måste du lägga till den avslutande ampersand-symbolen "&".

/Path/To/My_Script &

Om du vill köra kommandot som en annan användare använder du följande format:

su - $USER -c /Path/To/My_Script

Slutsats

Denna handledning diskuterar kortfattat hur du lägger till ett anpassat skript eller ett eget kommando eller en egen tjänst vid start.

Lämna ett svar

Din e-postadress kommer inte publiceras.