Hvordan kjøre Linux -kommandoer og skript automatisk på en systemstart

How Run Linux Commands



Å kjøre apper og skript automatisk ved oppstart kan være nyttig for automatisering av vanlige oppstartsoppgaver og hendelser. Denne artikkelen vil forklare noen få metoder som kan brukes for å starte apper og skript ved en ny omstart eller en ny pålogging.

Oppstartsprogrammer

Ubuntu og andre GNOME -baserte distribusjoner kommer med et program som bare kalles Oppstartsprogrammer. Den kan brukes til å administrere apper og skript som kjøres på en ny systemstart eller pålogging.







Start Startup Applications -appen fra programstarteren, og klikk på Legg til -knappen for å legge til en ny oppføring.





Fyll ut navn- og kommandofeltene i henhold til dine behov, og klikk deretter på Legg til -knappen for å fullføre opprettelsen av en ny oppføring. Oppføringen som er opprettet på skjermbildet nedenfor, sender en påminnelse om å lage en sikkerhetskopi som et systemvarsel ved hver omstart / pålogging. Du kan erstatte den med din egen kommando eller med hele banen til bash -skriptet. Du kan også bruke eksisterende systemkommandoer eller kjørbare filer som vanligvis finnes i forskjellige bin -mapper på tvers av filsystemet.





Som nevnt ovenfor, vises en påminnelse om sikkerhetskopiering ved hver omstart.



Systemd

Systemd er en demon og service manager som inneholder forskjellige verktøy for å administrere systemprosesser og OS -komponenter. I sin forenklede form brukes den vanligvis til å starte og avslutte tjenester i en ny oppstartssyklus.

Systemd kan brukes til å starte en app automatisk eller kjøre et skript på en ny oppstart. For å lage det samme varselet om påminnelse om sikkerhetskopiering forklart ovenfor, må du først opprette de nødvendige mappene og filen ved å kjøre kommandoene nedenfor:

$mkdir -s~/.konfig/system/bruker
$nano~/.konfig/system/bruker/backup_reminder.service

Erstatt nano med kommandoen til ditt favoritt tekstredigeringsprogram. Erstatt backup_reminder med et annet navn du foretrekker.

Lim inn koden nedenfor i backup_reminder.service -filen som er opprettet ved hjelp av kommandoen ovenfor.

[Enhet]
Beskrivelse = Sender en påminnelse om sikkerhetskopiering ved hver omstart
PartOf = graphical-session.target

[Service]
ExecStart = bash -c 'søvn 10; varsle-send 'Lag en sikkerhetskopi' '
Type = oneshot

[Installere]
WantedBy = graphical-session.target

Koden ovenfor er ganske grei. Den sender et varsel om å lage en sikkerhetskopi 10 sekunder etter at den grafiske økten er lastet (én gang hver omstart eller pålogging).

Kjør kommandoene nedenfor for å aktivere tjenesten slik at den automatisk kan kjøres ved hver omstart.

$chmod 644~/.konfig/system/bruker/backup_reminder.service
$ systemctl--bruker muliggjørebackup_reminder.service
$ systemctl--brukerdemon-reload
$ reboot

Dette er bare et enkelt eksempel på å kjøre en grunnleggende kommando ved oppstart ved hjelp av systemd. Du kan også opprette avanserte tjenester med flere betingelser og flere kommandoer. For mer informasjon, se systemd man side ved å kjøre kommandoen nedenfor:

$Mannsystem

Vær oppmerksom på at dette eksemplet forklarer hvordan du oppretter en ny tjeneste som ikke krever root-tilgang og er egnet for apper som starter automatisk som ikke krever root-tillatelser. Hvis du vil starte skript som krever root-tilgang automatisk, må du opprette en ny systemd-tjeneste i/etc/systemd/systemkatalogen i stedet for ~/.config/systemd/brukermappe og utelate –brukerbryter i kommandoene nevnt ovenfor.

Cron Job

Cron er et verktøy som med jevne mellomrom kan kjøre planlagte oppgaver i henhold til betingelsene spesifisert av en bruker. Disse planlagte jobbene opprettes i Crontab i et forhåndsdefinert format. Enkelt sagt forteller Crontab Cron hvilke jobber som skal kjøres på hvilket tidspunkt.

I likhet med systemd kan crontab -jobber brukes til å starte apper og kjøre skript automatisk ved oppstart. For å legge til en ny cron -jobb, kjør kommandoen nedenfor:

$crontab-Og

Legg til følgende linjer på slutten av tekstfilen (starter GNOME -terminalen automatisk ved hver omstart):

SHELL =/bin/bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Du kan bruke din egen kommando eller levere full vei til et skallskript.

Vær oppmerksom på at i motsetning til systemd, kan cron ikke oppdage om grafisk økt har blitt lastet inn eller ikke. Du må angi en estimert ventetid til X -serveren lastes inn og en visningsidentifikator. Du kan vite om visnings -ID -en din ved å kjøre kommandoen nedenfor:

$kastet ut $ DISPLAY

Forsinkelsen før kjøring av kommando eller skript avhenger av systemkonfigurasjonen og oppstartstiden.

Rc.local

En annen metode for å kjøre skript og kommandoer ved oppstart er å bruke rc.local -fil. Vær oppmerksom på at jeg under testen ikke kunne utsette kjøring av skript før grafisk økt var live. Hvis du legger til søvnforsinkelse, kan det føre til forsinkelse i visningen av selve påloggingsskjermen. På grunn av dette hadde jeg ingen suksess med å kjøre grafiske apper ved oppstart ved hjelp av rc.local -fil. Redigering av rc.local krever også root -tilgang, i motsetning til alle andre eksempler forklart ovenfor.

For å legge til kommandoer / skript i rc.local -filen, kjør kommandoen nedenfor (oppretter en ny rc.local -fil hvis den ikke finnes):

$sudo nano /etc/rc.local

Legg til kommandoene mellom #! /bin/bash og avslutt 0 linjer, som vist nedenfor:

#! /bin/bash
sti/til/my_script.sh
avslutte 0

Gjør rc.local -filen kjørbar ved å kjøre kommandoen nedenfor:

$sudo chmod+ x/etc/rc.local

Bare start på nytt for at oppstartsskriptet skal tre i kraft.

Konklusjon

Dette er noen få metoder som kan brukes til automatisk å kjøre skript og apper ved oppstart. Hvis du ønsker å kjøre skript som ikke krever root -tilgang, vil jeg anbefale å bruke GUI -appen Startup Applications. Hvis du vil kjøre apper og skript med root -tilgang, vil jeg foreslå deg å lage en systemd -tjeneste på systemnivå.

Om forfatteren

Nitesh Kumar

Jeg er en frilanser programvareutvikler og innholdsforfatter som elsker Linux, åpen kildekode -programvare og gratis programvaresamfunn.

Se alle innlegg