Startapplikationer
Ubuntu och andra GNOME-baserade distributioner kommer med en applikation som bara heter "Startup Applications". Den kan användas för att hantera appar och skript som körs på en ny systemstart eller inloggning.
Starta appen "Startup Applications" från programstartaren och klicka på knappen "Lägg till" för att lägga till en ny post.
Fyll i fälten "Namn" och "Kommando" enligt dina behov och klicka sedan på "Lägg till" för att skapa en ny post. Inmatningen som skapats i skärmdumpen nedan skickar en påminnelse om "Gör en säkerhetskopia" som ett systemmeddelande vid varje omstart / inloggning. Du kan ersätta det med ditt eget kommando eller med hela sökvägen för ditt bash-skript. Du kan också använda alla befintliga systemkommandon eller körbara filer som vanligtvis finns i olika "bin" -mappar över filsystemet.
Som nämnts ovan visas en påminnelse om säkerhetskopiering vid varje omstart.
Systemd
Systemd är en demon- och servicechef som innehåller olika verktyg för att hantera systemprocesser och OS-komponenter. I sin förenklade form används den vanligtvis för att starta och avsluta tjänster i en ny startcykel.
Systemd kan användas för att automatiskt starta en app eller köra ett skript på en ny start. För att skapa samma påminnelse om säkerhetskopiering som förklaras ovan måste du först skapa de mappar och filen som krävs genom att köra kommandona nedan:
$ mkdir -p ~ /.config / systemd / user$ nano ~ /.config / systemd / user / backup_reminder.service
Ersätt "nano" med kommandot från din favorittextredigerare. Ersätt "backup_reminder" med alla andra namn som du föredrar.
Klistra in koden nedan i backup_reminder.tjänstfil skapad med kommandot ovan.
[Enhet]Beskrivning = Skickar en påminnelse om säkerhetskopiering vid varje omstart
PartOf = grafisk session.mål
[Service]
ExecStart = bash -c 'sova 10; meddela-skicka "Gör en säkerhetskopia" '
Typ = oneshot
[Installera]
WantedBy = grafisk session.mål
Koden ovan är ganska enkel. Den skickar ett meddelande "Gör en säkerhetskopia" 10 sekunder efter att den grafiska sessionen har laddats (en gång varje omstart eller inloggning).
Kör kommandona nedan för att aktivera tjänsten så att den automatiskt kan köras vid varje omstart.
$ chmod 644 ~ /.config / systemd / user / backup_reminder.service$ systemctl --användare aktiverar backup_reminder.service
$ systemctl --user daemon-reload
$ omstart
Detta är bara ett enkelt exempel på att köra ett grundläggande kommando vid start med systemd. Du kan också skapa avancerade tjänster med flera villkor och flera kommandon. För mer information, se systemd man-sida genom att köra kommandot nedan:
$ man systemdObservera att detta exempel förklarar hur du skapar en ny tjänst som inte kräver root-åtkomst och är lämplig för automatiskt startande appar som inte kräver root-behörigheter. Om du vill starta skript automatiskt som kräver root-åtkomst måste du skapa en ny systemd-tjänst i katalogen “/ etc / systemd / system” istället för “~ /.config / systemd / user ”-mappen och utelämna” -user ”-omkopplaren i kommandona som nämns ovan.
Cron jobb
Cron är ett verktyg som regelbundet kan köra schemalagda uppgifter enligt de villkor som anges av en användare. Dessa schemalagda jobb skapas i Crontab i ett fördefinierat format. Enkelt uttryckt berättar Crontab för Cron vilka jobb som ska köras vid vilken tidpunkt.
Liksom systemd kan crontab-jobb användas för att starta appar och köra skript automatiskt vid start. För att lägga till ett nytt cron-jobb, kör kommandot nedan:
$ crontab -eLägg till följande rader i slutet av textfilen (startar automatiskt GNOME-terminalen vid varje omstart):
SHELL = / bin / bash@reboot sleep 30 && DISPLAY =: 0 gnome-terminal
Du kan använda ditt eget kommando eller ange hela sökvägen till ett skalskript.
Observera att till skillnad från systemd kan cron inte upptäcka om grafisk session har laddats eller inte. Du måste ange en viss beräknad väntetid tills X-servern laddas och en visningsidentifierare. Du kan veta om ditt visnings-ID genom att köra kommandot nedan:
$ echo $ DISPLAYFördröjningen före körning av kommando eller skript beror på din systemkonfiguration och starttid.
Rc.lokal
En annan metod för att köra skript och kommandon vid start är att använda “rc.lokal ”fil. Observera att under min testning kunde jag inte skjuta upp skriptkörningen förrän grafisk session var live. Om du lägger till någon sömnfördröjning leder det till fördröjning av visningen av själva inloggningsskärmen. På grund av detta hade jag ingen framgång med att köra grafiska appar vid start med rc.lokal fil. Redigerar rc.local kräver också root-åtkomst, till skillnad från alla andra exempel som förklaras ovan.
För att lägga till kommandon / skript till rc.lokal fil, kör kommandot nedan (skapar en ny RC.lokal fil om den inte finns):
$ sudo nano / etc / rc.lokalLägg till dina kommandon mellan “#! / bin / bash ”och” exit 0 ”, som visas nedan:
#! / bin / bashsökväg / till / mitt_skript.sh
avsluta 0
Gör rc.lokal fil körbar genom att köra kommandot nedan:
$ sudo chmod + x / etc / rc.lokalStarta om för att startskriptet ska träda i kraft.
Slutsats
Det här är några metoder som kan användas för att automatiskt köra skript och appar vid start. Om du vill köra skript som inte kräver root-åtkomst rekommenderar jag att du använder GUI-appen ”Startup Applications”. Om du vill köra appar och skript med rootåtkomst föreslår jag att du skapar en systemd-tjänst på systemnivå.
Om författaren
Nitesh Kumar
Jag är en frilansare mjukvaruutvecklare och innehållsförfattare som älskar Linux, programvara med öppen källkod och communityn för fri programvara.
Visa alla inlägg