Kā automātiski izpildīt komandas/skriptus pārstartēšanas vai startēšanas laikā


Kad es sāku Linux sistēmu un piesakos, mani vienmēr aizrauj lietas, kas notiek aiz ainas. Nospiežot barošanas pogu uz tukša metāla vai iedarbinot virtuālo mašīnu, jūs aktivizējat virkni notikumu, kas noved pie pilnībā funkcionējošas sistēmas - dažreiz mazāk nekā minūtes laikā. Tas pats attiecas arī uz atteikšanos un/vai sistēmas izslēgšanu.

Interesantāku un jautrāku to padara fakts, ka varat palaist operētājsistēmu noteiktās darbībās, kad tā tiek sākta un kad piesakāties vai izrakstāties.

Šajā distroagnostiskajā rakstā mēs apspriedīsim tradicionālās metodes šo mērķu sasniegšanai Linux.

Piezīme: Mēs pieņemsim, ka Bash tiks izmantots kā galvenais čaula pieteikšanās un atteikšanās notikumiem. Ja gadās izmantot citu, dažas no šīm metodēm var nedarboties. Ja rodas šaubas, skatiet sava čaulas dokumentāciju.

Linux skriptu izpilde pārstartēšanas vai startēšanas laikā

Ir divas tradicionālās metodes, kā izpildīt komandu vai palaist skriptus startēšanas laikā:

Papildus parastajam formātam (minūte/stunda/mēneša diena/mēnesis/nedēļas diena), ko plaši izmanto grafika norādīšanai, cron plānotājs ļauj izmantot arī @reboot . Šī direktīva, kurai seko absolūtais ceļš uz skriptu, liks tai darboties, kad mašīna sāk darboties.

Tomēr šai pieejai ir divi iebildumi:

  1. a) cron dēmonam jādarbojas (tas notiek normālos apstākļos), un
  2. b) skriptā vai crontab failā jāiekļauj nepieciešamie vides mainīgie (ja tādi ir) (sīkāku informāciju skatiet šajā StackOverflow pavedienā).

Šī metode ir derīga pat sadalījumiem, kuru pamatā ir sistēma. Lai šī metode darbotos, jums ir jāpiešķir izpildes atļaujas /etc/rc.d/rc.local šādi:

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

un faila apakšdaļā pievienojiet skriptu.

Šajā attēlā parādīts, kā palaist divus skriptu paraugus ( /home/gacanepa/script1.sh un /home/gacanepa/script2.sh ), izmantojot cron darbu un rc. attiecīgi, un to attiecīgie rezultāti.

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

Paturiet prātā, ka abiem skriptiem iepriekš jāpiešķir izpildes atļaujas:

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

Linux skriptu izpilde pēc pieteikšanās un atteikšanās

Lai izpildītu skriptu, piesakoties vai izrakstoties, izmantojiet attiecīgi ~ .bash_profile un ~ .bash_logout . Visticamāk, pēdējais fails būs jāizveido manuāli. Vienkārši nometiet rindiņu, atsaucoties uz skriptu, katra faila apakšdaļā tāpat kā iepriekš, un jūs esat gatavs doties.

Šajā rakstā mēs esam paskaidrojuši, kā palaist skriptu atsāknēšanas, pieteikšanās un atteikšanās laikā. Ja jūs domājat par citām metodēm, kuras mēs šeit būtu varējuši iekļaut, nekautrējieties izmantot zemāk esošo komentāru veidlapu, lai tās norādītu. Mēs ceram uz jums atbildi!