Startup-applikationer
Ubuntu og andre GNOME-baserede distributioner kommer med en applikation, der simpelthen kaldes "Startup Applications". Det kan bruges til at administrere apps og scripts, der kører på et nyt system-genstart eller login.
Start "Startup Applications" -appen fra applikationsstarteren, og klik på knappen "Tilføj" for at tilføje en ny post.
Udfyld felterne "Navn" og "Kommando" efter dine behov, og klik derefter på knappen "Tilføj" for at færdiggøre oprettelsen af en ny post. Posten oprettet i skærmbilledet nedenfor sender en "Lav en sikkerhedskopi" -påmindelse som en systemmeddelelse ved hver genstart / login. Du kan erstatte det med din egen kommando eller med hele stien til dit bash-script. Du kan også bruge enhver eksisterende systemkommando eller eksekverbare filer, der normalt findes i forskellige "bin" -mapper på tværs af filsystemet.
Som nævnt ovenfor vises en backuppåmindelse ved hver genstart.
Systemd
Systemd er en dæmon og servicemanager, der indeholder forskellige hjælpeprogrammer til at styre systemprocesser og OS-komponenter. I sin forenklede form bruges det typisk til at starte og afslutte tjenester i en ny opstartscyklus.
Systemd kan bruges til automatisk at starte en app eller køre et script på ny en boot. For at oprette den samme besked om backuppåmindelse, der er forklaret ovenfor, skal du først oprette de nødvendige mapper og filen ved at køre nedenstående kommandoer:
$ mkdir -p ~ /.config / systemd / bruger$ nano ~ /.config / systemd / user / backup_reminder.service
Udskift "nano" med kommando fra din yndlings teksteditor. Udskift "backup_reminder" med ethvert andet navn, du foretrækker.
Indsæt koden nedenfor i backup_reminder.servicefil oprettet ved hjælp af kommandoen ovenfor.
[Enhed]Beskrivelse = Sender en backuppåmindelse ved hver genstart
PartOf = grafisk session.mål
[Service]
ExecStart = bash -c 'sove 10; besked-send "Lav en sikkerhedskopi" '
Type = oneshot
[Installere]
WantedBy = grafisk session.mål
Koden ovenfor er ret ligetil. Den sender en meddelelse "Opret en sikkerhedskopi" 10 sekunder efter, at den grafiske session er indlæst (en gang hver genstart eller login).
Kør nedenstående kommandoer for at aktivere tjenesten, så den automatisk kan køre ved hver genstart.
$ chmod 644 ~ /.config / systemd / user / backup_reminder.service$ systemctl - bruger aktiverer backup_reminder.service
$ systemctl - bruger-dæmon-genindlæsning
$ genstart
Dette er kun et simpelt eksempel på at køre en grundlæggende kommando ved opstart ved hjælp af systemd. Du kan også oprette avancerede tjenester med flere betingelser og flere kommandoer. For mere information henvises til systemd man-siden ved at køre kommandoen nedenfor:
$ mand systemdBemærk, at dette eksempel forklarer oprettelse af en ny tjeneste, der ikke kræver rodadgang og er egnet til automatisk start af apps, der ikke kræver rodtilladelser. Hvis du vil starte scripts, der kræver rodadgang, automatisk, skal du oprette en ny systemd-tjeneste i "/ etc / systemd / system" -mappen i stedet for "~ /.config / systemd / user ”-mappe og udelad“ -bruger ”-knappen i ovennævnte kommandoer.
Cron Job
Cron er et værktøj, der periodisk kan køre planlagte opgaver i henhold til de betingelser, der er angivet af en bruger. Disse planlagte job oprettes i Crontab i et foruddefineret format. Enkelt sagt fortæller Crontab Cron hvilke job der skal køre på hvilket tidspunkt.
Ligesom systemd kan crontab-job bruges til at starte apps og køre scripts automatisk ved opstart. For at tilføje et nyt cron-job skal du køre kommandoen nedenfor:
$ crontab -eTilføj følgende linjer i slutningen af tekstfilen (starter automatisk GNOME-terminalen ved hver genstart):
SHELL = / bin / bash@reboot sleep 30 && DISPLAY =: 0 gnome-terminal
Du kan bruge din egen kommando eller levere fuld sti til et shell-script.
Bemærk, at i modsætning til systemd kan cron ikke registrere, om grafisk session er indlæst eller ej. Du skal angive en estimeret ventetid, indtil X-serveren indlæses, og en display-id. Du kan vide om dit display-id ved at køre kommandoen nedenfor:
$ echo $ DISPLAYForsinkelsen inden udførelse af kommando eller script afhænger af din systemkonfiguration og starttid.
Rc.lokal
En anden metode til at køre scripts og kommandoer ved opstart er at bruge “rc.lokal ”fil. Bemærk, at jeg under min test ikke var i stand til at udskyde scriptudførelse, før den grafiske session var live. Tilføjelse af søvnforsinkelse fører til forsinkelse i visningen af selve loginskærmen. På grund af dette havde jeg ingen succes med at køre grafiske apps ved opstart ved hjælp af rc.lokal fil. Redigering af rc.lokalt kræver også rodadgang i modsætning til alle andre eksempler, der er forklaret ovenfor.
For at tilføje kommandoer / scripts til rc.lokal fil, kør kommandoen nedenfor (opretter en ny rc.lokal fil, hvis den ikke findes):
$ sudo nano / etc / rc.lokalTilføj dine kommandoer mellem “#! / bin / bash ”og“ exit 0 ”linjer, som vist nedenfor:
#! / bin / bashsti / til / my_script.sh
Afslut 0
Lav rc.lokal fil eksekverbar ved at køre kommandoen nedenfor:
$ sudo chmod + x / etc / rc.lokalGenstart bare for opstartsskriptet for at træde i kraft.
Konklusion
Dette er et par metoder, der kan bruges til automatisk at køre scripts og apps ved opstart. Hvis du ønsker at køre scripts, der ikke kræver rootadgang, vil jeg anbefale at bruge "Startup Applications" GUI-appen. Hvis du vil køre apps og scripts med rootadgang, vil jeg foreslå dig at oprette en systemd-service på systemniveau.
Om forfatteren
Nitesh Kumar
Jeg er freelancer softwareudvikler og indholdsforfatter, der elsker Linux, open source software og det fri softwarefællesskab.
Vis alle indlæg