Hvordan bruke /etc /rc.Lokal ved oppstart

Hvordan bruke /etc /rc.Lokal ved oppstart
De rc.lokal Skript i noen Linux -distribusjoner og UNIX Systems er et superbrukeroppstartsskript, vanligvis lokalisert under katalogen/etc/etc/rc.d. Filnavnet RC refererer til å kjøre kontroll.

Rc.Lokalt er et foreldet skript som holdes for kompatibilitetsformål for SystemV -systemer.

Det var en gang en universell fil som var til stede i de fleste Linux -distribusjoner på grunn av sin enkelhet for Linux -administratorer å definere oppstartsskript eller tilleggstjenester å starte.
Filen RC.Lokalt inneholder ikke informasjon om systemstartkomponenter, men bare superbruker/rotdefinerte komponenter. Imidlertid er ikke alle rotoppstartsprogrammer beskrevet i RC.Lokale, men bare de som ikke forstyrrer systemkomponenter. Vanligvis RC.Lokalt utføres etter at normale tjenester er startet.

Nyere Linux -systemer, inkludert SystemD, erstattet RC.lokalt manus, men det kan gjenopprettes til tross for Å være en anbefalt løsning. Denne opplæringen viser hvordan du gjenoppretter og bruker RC.Lokalt manus og bruk RC-LOCAL av SystemD på nyere Linux-distribusjoner.

Aktivering /etc /rc.Lokal i Linux -distribusjoner ved bruk av SystemD:

VIKTIG: Det er viktig å huske /etc /rc.Lokal er avbrutt og erstattet. Gjeldende metode for å kjøre skript ved oppstart er beskrevet etter instruksjoner for å aktivere /etc /rc.lokal. Denne opplæringen er beregnet på brukere med spesifikke behov.

For å starte, opprette filen /etc/rc.lokal Bruke redaktøren du vil ha og sudo (eller root):

nano /etc /rc.lokal

Lim inn koden nedenfor i filen, og erstatt Med kommandoen vil du kjøre ved oppstart. Ikke bruk sudo. Hvis en kommando inkludert i dette skriptet ikke klarer å utføre, vil tjenesten som vil ringe RC.Lokal (RC-LOCAL.service) vil mislykkes.

#!/bin/sh -e
#
# RC.lokal
#
# Dette skriptet blir utført på slutten av hver multuser -løp.
# Forsikre deg om at skriptet vil "avslutte 0" ved suksess eller andre
# Verdi på feil.
#
# For å aktivere eller deaktivere dette skriptet, bare endre utførelsen
# biter.
#
# Som standard gjør dette skriptet ingenting.

Avslutt 0

I mitt eksempel vil jeg bruke RC.Lokalt manus for å oppdatere sikkerhetsskannen Vuls -databasen hver gang systemet starter. Du kan skrive hvilket som.

Lagre filen (Ctrl+x og Y) og gi den utførelsesstillatelser ved å kjøre kommandoen nedenfor:

sudo chmod +x /etc /rc.lokal

Opprett filen /etc/systemd/system/rc-local.service, løpe:

nano/etc/systemd/system/rc-lokalt.service

Lim inn følgende kommandoer og avsluttende lagring ved å trykke på Ctrl+x og Y.

Execstart =/etc/rc.Lokal start
TimeoutSec = 0
StandardOutput = tty
RESTEFTEREXIT = Ja
SysvStartPriority = 99
[Installere]
WantedBy = Multi-User.mål

Aktiver RC-LOCAL:

sudo SystemCTL aktiver RC-LOCAL

Nå kan du starte RC-LOCAL.Service, som vil lese /etc /rc.lokal fil. Kjør kommandoen vist nedenfor:

SystemCTL Start RC-Local.service

Du kan sjekke om RC-LOCAL ble lastet ordentlig ved å kjøre følgende:

SystemCTL-status RC-LOCAL.service

Riktig måte (SystemD):

Prosessen beskrevet ovenfor er gammel, foreldet og kan krasje noen tjenester.
Denne delen viser den nåværende prosessen for å starte skript eller tjenester ved oppstart for Linux -distribusjoner ved hjelp av SystemD.

SystemD er en Services Manager som tildeler Services Control Groups (CGroup) og sporer prosesser. SystemD er prosessen (PID) 1 ansvarlig for systemstarten.

For å legge til tjenester eller skript ved oppstart, må du opprette en Systemd Unit.
SystemD -enheter inkluderer tjenester (.service), Mount Points (.montering), enheter (.enhet) eller stikkontakter (.stikkontakt). I motsetning til den gamle prosessen beskrevet tidligere med RC.Lokal, i stedet for å redigere den samme filen som inneholder informasjon om brukerskript, må du opprette en SystemD -tjenesteenhet for hvert skript du vil kjøre ved oppstart.

Systemd -enheter er lokalisert på /etc/systemd/system, Og det er der vi trenger å opprette SystemD -enheten for skriptet vi vil kjøre på Boot.

Følgende bilde viser innholdet i enheten TeamViewer.service.

Hvor [enheten] direktiver:

  • Beskrivelse = Dette direktivet beskriver enheten; Du kan angi enhetsnavnet.
  • Krever = Her kan du spesifisere avhengigheter for å forhindre oppstartssvikt.
  • Ønsker = Som det forrige, holder den tjenesten til å fungere selv om den ikke finner de definerte avhengighetene.
  • Etter = Enheten starter etter det spesifiserte i dette direktivet.

Noen direktiver som brukes i [Service] -delen kan deles med [enhet].

  • Type = I eksemplet vist ovenfor, gaffel indikerer at tjenesten vil bli drept, og holde barneprosesser som må tilordnes en PID.
  • Pidfile = Gaffeledirektiv krever PIDFILE -direktivet, som må inneholde banen til filen PID for barneprosessen for SystemD for å identifisere den.
  • ExecStart = Her spesifiserer du banen og kommandoene du vil bli utført. Dette ligner på RC.lokal fil.
  • Omstart = Dette direktivet instruerer SystemD når du skal starte enheten på nytt. De tilgjengelige alternativene er på grunn av, alltid, alltid, på suksess, på vakt eller på-abnormal.
  • StartlimitInterval = Dette direktivet indikerer at enheten har 60 sekunder for 10 forsøk på å starte på nytt ved feil.
  • StartlimitBurst = Dette direktivet indikerer forsøksgrensen, i eksemplet over, 10 forsøk på 60 sekunder.

Det eneste [installasjon] -direktivet i eksemplet over er WantedBy.

  • WantedBy = Her kan du spesifisere denne enheten som en avhengighet; Det ligner på DISSE -direktivet, men å definere den nåværende enheten anses som en avhengighet av en annen enhet.

Merk: Du kan sjekke alle SystemD -direktiver på
https: // www.Freedesktop.org/programvare/systemd/man/systemd.direktiver.html

Legge til din egen SystemD -enhet:

For å kjøre et skript ved oppstart, lag det under /etc/systemd/system med navnet etterfulgt av en prikk og tjeneste, for eksempel, Linuxhint. Service. Du kan bruke Nano som i følgende prøve:

Lim inn følgende, erstatte <Skriptnavn eller beskrivelse> med en beskrivelse av skriptet ditt og hvor /usr/sbin/linuxhint.sh Skriv riktig vei.

[Enhet]
Beskrivelse ==