Kako samodejno izvajati ukaze/skripte med ponovnim zagonom ali zagonom
Vedno sem navdušen nad dogajanjem v zakulisju, ko zaženem sistem Linux in se prijavim. S pritiskom gumba za vklop na golo kovino ali zagonom navideznega stroja sprožite vrsto dogodkov, ki vodijo do popolnoma funkcionalnega sistema - včasih v manj kot minuti. Enako velja, ko se odjavite in/ali zaustavite sistem.
Zaradi tega je to bolj zanimivo in zabavno dejstvo, da lahko operacijski sistem izvaja določena dejanja, ko se zažene in ko se odjavite ali odjavite.
V tem distro-agnostičnem članku bomo razpravljali o tradicionalnih metodah za doseganje teh ciljev v Linuxu.
Opomba: Bash bomo uporabili kot glavno lupino za dogodke prijave in odjave. Če slučajno uporabite drugega, lahko nekatere od teh metod delujejo ali pa tudi ne. Če ste v dvomih, glejte dokumentacijo vaše lupine.
Izvajanje skriptov Linuxa med ponovnim zagonom ali zagonom
Obstajata dve tradicionalni metodi za izvajanje ukaza ali zagon skriptov med zagonom:
Poleg običajne oblike (minuta/ura/dan meseca/mesec/dan v tednu), ki se pogosto uporablja za označevanje urnika, cron načrtovalec omogoča tudi uporabo @reboot
. Ta direktiva, ki ji sledi absolutna pot do skripta, bo povzročila njegovo zagon, ko se stroj zažene.
Vendar imata ta pristop dva opozorila:
- a) da se mora izvajati demon cron (kar velja v običajnih okoliščinah) in
- b) skript ali datoteka crontab mora vsebovati spremenljivke okolja (če obstajajo), ki bodo potrebne (za več podrobnosti glejte to nit StackOverflow).
Ta metoda velja tudi za distribucije, ki temeljijo na systemd. Če želite, da ta metoda deluje, morate /etc/rc.d/rc.local
odobriti dovoljenja za izvajanje, kot sledi:
# chmod +x /etc/rc.d/rc.local
in dodajte svoj skript na dnu datoteke.
Naslednja slika prikazuje, kako zagnati dva vzorčna skripta ( /home/gacanepa/script1.sh
in /home/gacanepa/script2.sh
) z uporabo opravila cron in rc. lokalni oziroma 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
Upoštevajte, da je treba obema skriptama predhodno dodeliti dovoljenja za izvajanje:
$ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2.sh
Izvajanje skriptov Linuxa pri prijavi in odjavi
Če želite zagnati skript ob prijavi ali odjavi, uporabite ~ .bash_profile
oziroma ~ .bash_logout
. Najverjetneje boste morali slednjo datoteko ustvariti ročno. Preprosto spustite vrstico, ki prikliče vaš skript, na dno vsake datoteke na enak način kot prej in že ste pripravljeni.
V tem članku smo razložili, kako zagnati skript ob ponovnem zagonu, prijavi in odjavi. Če si omislite druge metode, ki bi jih lahko tukaj vključili, vas prosimo, da nanje opozorite v spodnjem obrazcu za komentar. Veselimo se vaših odzivov!