Slik kjører du kommandoer/skript automatisk under omstart eller oppstart


Jeg er alltid fascinert av det som skjer bak kulissene når jeg starter et Linux-system og logger på. Ved å trykke på strømknappen på et bart metall eller starte en virtuell maskin, setter du i gang en rekke hendelser som fører til et fullt funksjonelt system – noen ganger på mindre enn ett minutt. Det samme gjelder når du logger av og/eller slår av systemet.

Det som gjør dette mer interessant og morsomt er det faktum at du kan få operativsystemet til å utføre visse handlinger når det starter opp og når du logger på eller logger ut.

I denne distroagnostiske artikkelen vil vi diskutere de tradisjonelle metodene for å oppnå disse målene i Linux.

Merk: Vi vil anta bruken av Bash som hovedskall for påloggings- og utloggingshendelser. Hvis du tilfeldigvis bruker en annen, kan det hende at noen av disse metodene fungerer eller ikke. Hvis du er i tvil, se dokumentasjonen til skallet ditt.

Utføre Linux-skript under omstart eller oppstart

Det er to tradisjonelle metoder for å utføre en kommando eller kjøre skript under oppstart:

Metode #1 – Bruk en cron-jobb

I tillegg til det vanlige formatet (minutt/time/dag i måneden/måned/ukedag) som er mye brukt for å indikere en tidsplan, tillater cron scheduler også bruk av @reboot. Dette direktivet, etterfulgt av den absolutte banen til skriptet, vil føre til at det kjører når maskinen starter opp.

Imidlertid er det to forbehold ved denne tilnærmingen:

  1. a) cron-demonen må kjøre (noe som er tilfellet under normale omstendigheter), og
  2. b) skriptet eller crontab-filen må inkludere miljøvariablene (hvis noen) som vil være nødvendig (se denne StackOverflow-tråden for mer detaljer).

Metode #2 – Bruk /etc/rc.d/rc.local

Denne metoden er gyldig selv for systembaserte distribusjoner. For at denne metoden skal fungere, må du gi utføringstillatelser til /etc/rc.d/rc.local som følger:

chmod +x /etc/rc.d/rc.local

og legg til skriptet ditt nederst i filen.

Følgende bilde viser hvordan du kjører to eksempelskript (/home/gacanepa/script1.sh og /home/gacanepa/script2.sh) ved hjelp av en cron< jobb og rc.local, henholdsvis, og deres respektive resultater.

#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
#!/bin/bash
SITE="linux-console.net"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

Husk at begge skriptene må gis utføringstillatelser tidligere:

chmod +x /home/gacanepa/script1.sh
chmod +x /home/gacanepa/script2.sh

Utføre Linux-skript ved pålogging og utlogging

For å kjøre et skript ved pålogging eller utlogging, bruk henholdsvis ~.bash_profile og ~.bash_logout. Mest sannsynlig må du opprette den sistnevnte filen manuelt. Bare slipp en linje som påkaller skriptet ditt nederst i hver fil på samme måte som før, og du er klar til å gå.

Sammendrag

I denne artikkelen har vi forklart hvordan du kjører skript ved omstart, pålogging og utlogging. Hvis du kan tenke på andre metoder vi kunne ha inkludert her, bruk gjerne kommentarskjemaet nedenfor for å peke på dem. Vi ser frem til å høre fra deg!