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:
- a) cron demon mora biti pokrenut (što je slučaj u normalnim okolnostima), i
- 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!