Kako automatski izvršavati komande/skripte tokom ponovnog pokretanja ili pokretanja


Uvijek sam fasciniran stvarima koje se dešavaju iza kulisa kada pokrenem Linux sistem i prijavim se. Pritiskom na dugme za napajanje na golom metalu ili pokretanjem virtuelne mašine pokrećete niz događaja koji vode do potpuno funkcionalnog sistema – ponekad za manje od jednog minuta. Isto važi i kada se odjavite i/ili isključite sistem.

Ono što ovo čini zanimljivijim i zabavnijim je činjenica da operativni sistem može da izvrši određene radnje kada se pokrene i kada se prijavite ili odjavite.

U ovom distro-agnostičkom članku ćemo raspravljati o tradicionalnim metodama za postizanje ovih ciljeva u Linuxu.

Napomena: Pretpostavit ćemo korištenje Bash kao glavne ljuske za događaje prijavljivanja i odjave. Ako koristite neku drugu metodu, neke od ovih metoda mogu, ali ne moraju raditi. Ako ste u nedoumici, pogledajte dokumentaciju vaše ljuske.

Izvršavanje Linux skripti tokom ponovnog pokretanja ili pokretanja

Postoje dvije tradicionalne metode za izvršavanje naredbe ili pokretanje skripte tokom pokretanja:

Metod #1 – Koristite cron posao

Osim uobičajenog formata (minuta/sat/dan u mjesecu/mjesec/dan u sedmici) koji se široko koristi za označavanje rasporeda, cron planer također dozvoljava korištenje @reboot. Ova direktiva, praćena apsolutnom putanjom do skripte, će uzrokovati njeno pokretanje kada se mašina pokrene.

Međutim, postoje dva upozorenja za ovaj pristup:

  1. a) cron demon mora biti pokrenut (što je slučaj u normalnim okolnostima), i
  2. b) skripta ili crontab datoteka moraju uključivati varijable okruženja (ako ih ima) koje će biti potrebne (pogledajte ovu StackOverflow nit za više detalja).

Metod #2 – Koristite /etc/rc.d/rc.local

Ova metoda vrijedi čak i za sistemske distribucije. Da bi ova metoda funkcionirala, morate dodijeliti dozvole za izvršavanje /etc/rc.d/rc.local na sljedeći način:

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

i dodajte svoju skriptu na dno datoteke.

Sljedeća slika pokazuje kako pokrenuti dvije uzorke skripte (/home/gacanepa/script1.sh i /home/gacanepa/script2.sh) koristeći cron< posao i rc.local, respektivno, i njihovi rezultati.

#!/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

Imajte na umu da obje skripte moraju prethodno dobiti dozvole za izvršavanje:

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

Izvršavanje Linux skripti prilikom prijave i odjave

Da biste izvršili skriptu prilikom prijave ili odjave, koristite ~.bash_profile i ~.bash_logout, respektivno. Najvjerovatnije ćete morati ručno kreirati potonju datoteku. Samo ispustite liniju koja poziva vašu skriptu na dnu svake datoteke na isti način kao i prije i spremni ste za rad.

Sažetak

U ovom članku smo objasnili kako pokrenuti skriptu pri ponovnom pokretanju, prijavi i odjavi. Ako se možete sjetiti drugih metoda koje smo mogli uključiti ovdje, slobodno upotrijebite formular za komentare ispod kako biste ih istaknuli. Radujemo se Vašem odgovoru!