Kako automatski izvršiti naredbe/skripte tijekom ponovnog pokretanja ili pokretanja


Uvijek me fasciniraju stvari koje se događaju iza kulisa kada pokrenem Linux sustav i prijavim se. Pritiskom na tipku za napajanje na golom metalu ili pokretanjem virtualnog stroja, pokrećete niz događaja koji dovode do potpuno funkcionalnog sustava - ponekad u manje od minute. Isto vrijedi i kada se odjavite i/ili isključite sustav.

Ono što ovo čini zanimljivijim i zabavnijim je činjenica da možete natjerati operativni sustav da izvrši određene radnje kada se podiže i kada se prijavljujete ili odjavljujete.

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

Napomena: Pretpostavit ćemo korištenje Bash kao glavne ljuske za događaje prijave i odjave. Ako slučajno koristite neku drugu, neke od ovih metoda mogu, ali i ne moraju funkcionirati. Ako ste u nedoumici, pogledajte dokumentaciju svoje ljuske.

Izvršavanje Linux skripti tijekom ponovnog pokretanja ili pokretanja

Postoje dvije tradicionalne metode za izvršavanje naredbi ili pokretanje skripti tijekom pokretanja:

Metoda #1 – Koristite cron posao

Osim uobičajenog formata (minuta/sat/dan u mjesecu/mjesec/dan u tjednu) koji se naširoko koristi za označavanje rasporeda, cron planer također dopušta korištenje @reboot. Ova naredba, praćena apsolutnim putem do skripte, uzrokovat će njeno pokretanje kada se stroj podigne.

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 sadržavati varijable okruženja (ako postoje) koje će biti potrebne (pogledajte ovu StackOverflow nit za više detalja).

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

Ova metoda vrijedi čak i za distribucije temeljene na systemd-u. Kako bi ova metoda radila, morate dodijeliti dopuštenja 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 prikazuje kako pokrenuti dvije ogledne skripte (/home/gacanepa/script1.sh i /home/gacanepa/script2.sh) pomoću cron< posao i rc.local, te njihove odgovarajuće rezultate.

#!/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 dopuštenja za izvršavanje:

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

Izvršavanje Linux skripti pri prijavi i odjavi

Da biste izvršili skriptu pri prijavi ili odjavi, koristite ~.bash_profile i ~.bash_logout. Najvjerojatnije ćete morati ručno izraditi potonju datoteku. Samo ispustite redak koji poziva vašu skriptu na dno svake datoteke na isti način kao i prije i spremni ste.

Sažetak

U ovom smo članku 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 obrazac za komentare u nastavku da ih istaknete. Radujemo se vašem odgovoru!