Opstarttoepassingen
Ubuntu en andere op GNOME gebaseerde distributies worden geleverd met een applicatie die eenvoudigweg "Startup Applications" wordt genoemd. Het kan worden gebruikt voor het beheren van apps en scripts die worden uitgevoerd bij een nieuwe herstart of aanmelding van het systeem.
Start de app "Opstarttoepassingen" vanuit het startprogramma voor toepassingen en klik op de knop "Toevoegen" om een nieuw item toe te voegen.
Vul de velden "Naam" en "Opdracht" in volgens uw behoeften en klik vervolgens op de knop "Toevoegen" om het maken van een nieuw item te voltooien. Het item dat in de onderstaande schermafbeelding is gemaakt, stuurt een herinnering "Maak een back-up" als systeemmelding bij elke herstart / aanmelding. Je kunt het vervangen door je eigen commando of met het volledige pad van je bash-script. U kunt ook alle bestaande systeemopdrachten of uitvoerbare bestanden gebruiken die zich gewoonlijk in verschillende "bin" -mappen over het bestandssysteem bevinden.
Zoals hierboven vermeld, wordt er bij elke herstart een back-upherinnering weergegeven.
Systemd
Systemd is een daemon en servicemanager die verschillende hulpprogramma's bevat om systeemprocessen en OS-componenten te beheren. In zijn simplistische vorm wordt het meestal gebruikt om services te starten en te beëindigen in een nieuwe opstartcyclus.
Systemd kan worden gebruikt om automatisch een app te starten of een script uit te voeren bij een nieuwe opstart. Om dezelfde back-upherinneringsmelding te maken die hierboven is uitgelegd, moet u eerst de vereiste mappen en bestanden maken door de onderstaande opdrachten uit te voeren:
$ mkdir -p ~/.config/systemd/gebruiker$ nano ~/.config/systemd/user/backup_reminder.onderhoud
Vervang "nano" door het commando van je favoriete teksteditor. Vervang "backup_reminder" door een andere naam die u verkiest.
Plak de onderstaande code in de backup_reminder.servicebestand gemaakt met de bovenstaande opdracht command.
[Eenheid]Description=Stuurt een back-upherinnering bij elke herstart
PartOf=grafische-sessie.doelwit
[Onderhoud]
ExecStart=bash -c 'slaap 10; informeren-verzenden "Maak een back-up"'
Type=oneshot
[Installeren]
WantedBy=grafische-sessie.doelwit
De bovenstaande code is vrij eenvoudig. Het stuurt een melding "Maak een back-up" 10 seconden nadat de grafische sessie is geladen (eenmaal elke herstart of login).
Voer de onderstaande opdrachten uit om de service in te schakelen, zodat deze automatisch kan worden uitgevoerd bij elke herstart.
$ chmod 644 ~/.config/systemd/user/backup_reminder.onderhoud$ systemctl --gebruiker backup_reminder inschakelen.onderhoud
$ systemctl --user daemon-reload
$ opnieuw opstarten
Dit is slechts een eenvoudig voorbeeld van het uitvoeren van een basiscommando bij het opstarten met systemd. U kunt ook geavanceerde services maken met meerdere voorwaarden en meerdere opdrachten. Raadpleeg voor meer informatie de man-pagina van systemd door de onderstaande opdracht uit te voeren:
$ man systeemMerk op dat in dit voorbeeld het maken van een nieuwe service wordt uitgelegd die geen root-toegang vereist en geschikt is voor het automatisch starten van apps waarvoor geen root-machtigingen nodig zijn. Als u automatisch scripts wilt starten die root-toegang vereisen, moet u een nieuwe systemd-service maken in de map "/etc/systemd/system" in plaats van "~/.config/systemd/user” map en laat de schakelaar “-user” weg in de hierboven genoemde opdrachten.
Cron-job
Cron is een tool die periodiek geplande taken kan uitvoeren volgens de voorwaarden die door een gebruiker zijn gespecificeerd. Deze geplande taken worden in Crontab aangemaakt in een vooraf gedefinieerd formaat. In eenvoudige bewoordingen vertelt Crontab Cron welke taken op welk moment moeten worden uitgevoerd.
Net als systemd kunnen crontab-taken worden gebruikt om apps te starten en scripts automatisch uit te voeren bij het opstarten. Voer de onderstaande opdracht uit om een nieuwe cron-taak toe te voegen:
$ crontab -eVoeg de volgende regels toe aan het einde van het tekstbestand (start automatisch de GNOME-terminal bij elke herstart):
SHELL=/bin/bash@reboot sleep 30 && DISPLAY=:0 gnome-terminal
U kunt uw eigen opdracht gebruiken of het volledige pad naar een shellscript opgeven.
Merk op dat cron, in tegenstelling tot systemd, niet kan detecteren of een grafische sessie is geladen of niet. U moet een geschatte wachttijd opgeven totdat de X-server wordt geladen en een weergave-ID opgeven. U kunt meer te weten komen over uw weergave-ID door de onderstaande opdracht uit te voeren:
$ echo $DISPLAYDe vertraging voordat een opdracht of script wordt uitgevoerd, hangt af van uw systeemconfiguratie en opstarttijd.
Rc.lokaal
Een andere methode om scripts en opdrachten bij het opstarten uit te voeren, is door "rc" te gebruiken.lokaal” bestand. Merk op dat ik tijdens mijn testen de uitvoering van het script niet kon uitstellen tot de grafische sessie live was. Het toevoegen van een slaapvertraging leidde tot vertraging bij het weergeven van het inlogscherm zelf. Hierdoor had ik geen succes bij het uitvoeren van grafische apps bij het opstarten met rc.lokaal bestand. rc . bewerken.local vereist ook root-toegang, in tegenstelling tot alle andere voorbeelden die hierboven zijn uitgelegd.
Commando's / scripts toevoegen aan rc.local bestand, voer de onderstaande opdracht uit (maakt een nieuwe rc.lokaal bestand als het niet bestaat):
$ sudo nano /etc/rc.lokaalVoeg uw commando's toe tussen "#! /bin/bash" en "exit 0" regels, zoals hieronder getoond:
#! /bin/bashpad/naar/mijn_script.sh
uitgang 0
rc . maken.lokaal bestand uitvoerbaar door de onderstaande opdracht uit te voeren:
$ sudo chmod +x /etc/rc.lokaalStart gewoon opnieuw op om het opstartscript van kracht te laten worden.
Conclusie
Dit zijn een paar methoden die kunnen worden gebruikt om automatisch scripts en apps uit te voeren bij het opstarten. Als u scripts wilt uitvoeren waarvoor geen root-toegang nodig is, raad ik u aan de GUI-app "Startup Applications" te gebruiken. Als je apps en scripts met root-toegang wilt uitvoeren, raad ik je aan om een systemd-service op systeemniveau te maken.
Over de auteur
Nitesh Kumar
Ik ben een freelancer-softwareontwikkelaar en inhoudschrijver die dol is op Linux, open source software en de gratis softwaregemeenschap.
Bekijk alle berichten