For å legge til tjenester og skript ved oppstart på Debian 11, må du opprette SystemD -enheter. Denne opplæringen fokuserer på SystemD -enheter.
Hva er en SystemD -enhet?
SystemD -enheter er konfigurasjonsfiler som inneholder informasjon for riktig styring eller utførelse av visse systemfiler. SystemD-enheter kan brukes til å administrere tjenester, stikkontakter, enheter, monteringspunkter, automotpunkter, byttefiler eller partisjoner, et oppstartsmål, en sett filsystemsti, tidtakere kontrollert og overvåket av SystemD, en ressursstyringsskive eller en gruppe av eksternt opprettede prosesser.
Systemd -enheter er lokalisert under katalogen /etc/systemd/system. Ethvert skript du vil kjøre på oppstart ved hjelp av SystemD -enheter, må spesifiseres i en fil (enhet) under denne katalogen.
En rask visning ved hjelp av LS -kommandoen vil vise oss de eksisterende SystemD -enhetene i systemet vårt.
LS/etc/Systemd/System
En av filene som ikke var inkludert i skjermdumpen ovenfor er tomcat.service hvis innhold virker som følgende bilde.
Merk: Følgende informasjon er at du skal bli kjent med enhetskonfigurasjonsfiler. Ikke bekymre deg, enheten du oppretter for å kjøre skriptet ditt vil være enklere.
Hvor [enheten] direktiver:
Beskrivelse: Dette direktivet lar deg legge til en beskrivelse for en enhet, her kan du angi enhetsnavnet for at det skal identifiseres.
Ønsker: Her kan du spesifisere enhetsavhengighetene. Merk at det er forskjellige direktiver for dette lignende formålet. For eksempel direktivet Krever brukes til å spesifisere strenge avhengigheter, uten hvilken enheten ikke kan fungere. I motsetning til krever, brukes ønsker til å spesifisere avhengigheter uten at enheten kan fortsette å jobbe.
Etter: Den nåværende enheten starter etter enheten som er spesifisert i dette direktivet.
[Service] Seksjonsdirektiver:
Type: I forrige eksempel indikerer gaffel at tjenesten skal drepes mens du holder barneprosesser som må tilordnes en PID.
Miljø: Her kan du spesifisere enhetsmiljøvariablene.
Execstart: Dette direktivet lar deg spesifisere banen og kommandoene du vil utføre.
Execstop: Du kan spesifisere kommandoen som brukes til å stoppe enheten.
SuccessExitStatus: Dette direktivet lar deg spesifisere exit -status og signaler.
Bruker: Du kan spesifisere brukerens eier av enheten.
Gruppe: Du kan spesifisere gruppeeieren av enheten.
Umask: Du kan spesifisere brukermasken.
Restartsek: Hvis enheten starter på nytt automatisk, kan du spesifisere tiden for å vente på å prøve på nytt på nytt.
Omstart: Du kan definere for SystemD når enheten skal startes på nytt. De tilgjengelige alternativene er alltid, på-failure, on-abort, on-access, on-watchdog og on-abnormal.
Direktivet [installasjon] i eksemplet over er ønsket av.
Wantedby: Dette direktivet lar deg definere enheten som avhengighet; det ligner på Ønsker Direktiv, men for å spesifisere om den nåværende enheten regnes som en avhengighet av en annen enhet.
Andre vanlige direktiver i [Enhet] -delen som ikke var inkludert i forrige skjermbilde:
Krever: I dette direktivet kan du spesifisere avhengigheter for å forhindre oppstartssvikt. I motsetning til Ønsker Direktiv, hvis en avhengighet spesifisert med direktivet krever ikke oppfylt, fungerer ikke enheten.
I [Service] -delen:
Pidfile: Gaffeldirektivet krever PIDFile -direktivet, som inneholder veien til filen PID for barneprosessen for SystemD å identifisere det.
Start LimitInterval: indikerer at enheten har 60 sekunder for 10 forsøk på å starte på nytt ved feil.
StartlimitBurst: Dette direktivet indikerer forsøksgrensen, i forrige eksempel, 10 forsøk på 60 sekunder.
For ytterligere informasjon om SystemD -enheter kan du lese:
https: // Manpages.Debian.org/jessie/systemd/systemd.enhet.5.no.html.
Opprette en SystemD -enhet for å kjøre et skript på Boot på Debian 11
Å kjøre et skript ved oppstart kan være enklere og inneholder mindre konfigurasjon enn tomcat.service Fil tidligere brukt for å vise enhetens vanlige innhold.
Som tidligere sagt, filene (enhetene) som inneholder informasjonen om skript som kjører på oppstart, er lokalisert i katalogen /etc/systemd/system. For å definere et skript som skal kjøres på Boot, må du opprette en ny enhet for dette skriptet. Å lage en enhet under /etc/systemd/system, Du kan bruke Nano som vist i eksemplet nedenfor, der jeg lager en enhet som heter manus.service, Du kan navngi det når du anser som praktisk å identifisere skriptet ditt.
sudo nano/etc/systemd/system/script.service
Innholdet i enheten for skriptet ditt vil være enklere enn tomcat.service brukt som eksempel tidligere.
Kopier og lim inn følgende kode i filen du opprettet under /etc/systemd/system.
Merk: Erstatte med skriptnavnet ditt og Med veien til skriptet ditt.
[Enhet]
Beskrivelse = Skriptnavnet ditt her
Etter = standard.mål
[Service]
ExecStart =/sti/to/script.sh
[Installere]
WantedBy = standard.mål
Etter å ha kopiert innholdet i filen under /etc/systemd/system/, Du må aktivere den ved å bruke SystemCTL -kommandoen som vist nedenfor. Erstatte med riktig navn du er tildelt enheten.
Nå er manuset ditt klart til å kjøre ved oppstart i Debian 11.
Konklusjon
Som du kan se, er det ganske enkelt å kjøre skript på Boot i Debian 11 ved hjelp av SystemD. Ethvert Linux -brukernivå kan få denne oppgaven gjort ved bare å lage en enkel fil i enhetskatalogen. Linux tilbyr selvfølgelig flere metoder for å kjøre skript ved oppstart som ikke ble beskrevet i denne opplæringen som CRON. Enhver Linux -bruker bør vite hvordan du finner SystemD -enheter for å kjøre tjenester eller nødvendige skript ved oppstart. Både SystemD -enheter og CRON er aksepterte metoder, mens RC.lokal eller init.D -skript er foreldet.
Takk for at du leste denne opplæringen som forklarer hvordan du kjører skript på oppstart ved hjelp av SystemD i Debian 11. Fortsett å følge oss for flere Linux -tips og opplæringsprogrammer.