Komentojen/komentosarjojen automaattinen suorittaminen uudelleenkäynnistyksen tai käynnistyksen aikana


Olen aina kiinnostunut kulissien takana tapahtuvista asioista, kun käynnistän Linux-järjestelmän ja kirjaudun sisään. Painamalla virtapainiketta paljaalla metallilla tai käynnistämällä virtuaalikoneen saat liikkeelle sarjan tapahtumia, jotka johtavat täysin toimivaan järjestelmään – joskus alle minuutissa. Sama pätee, kun kirjaudut ulos ja/tai sammutat järjestelmän.

Mielenkiintoisempaa ja hauskempaa tekee tästä se, että voit saada käyttöjärjestelmän suorittamaan tiettyjä toimintoja, kun se käynnistyy ja kirjaudut ulos tai kirjaudut ulos.

Tässä distroagnostisessa artikkelissa keskustelemme perinteisistä menetelmistä näiden tavoitteiden saavuttamiseksi Linuxissa.

Huomaa: Oletamme, että Bash käytetään pääkuorena kirjautumis- ja uloskirjautumistapahtumissa. Jos käytät toista, jotkin näistä menetelmistä saattavat toimia tai eivät toimi. Jos olet epävarma, katso kuoresi dokumentaatiota.

Linux-komentosarjojen suorittaminen uudelleenkäynnistyksen tai käynnistyksen aikana

On kaksi perinteistä tapaa suorittaa komento tai suorittaa komentosarjat käynnistyksen aikana:

Tapa #1 – Käytä cron-työtä

Tavanomaisen muodon (minuutti/tunti/kuukauden päivä/kuukausi/viikonpäivä) lisäksi, jota käytetään laajalti aikataulun osoittamiseen, cron-ajastin sallii myös @reboot:n käytön. Tämä direktiivi, jota seuraa komentosarjan absoluuttinen polku, saa sen suorittamaan, kun kone käynnistyy.

Tässä lähestymistavassa on kuitenkin kaksi varoitusta:

  1. a) cron-daemonin on oltava käynnissä (mikä on tilanne normaaleissa olosuhteissa) ja
  2. b) komentosarjan tai crontab-tiedoston on sisällettävä ympäristömuuttujat (jos sellaisia on), joita tarvitaan (katso lisätietoja tästä StackOverflow-säikeestä).

Tapa 2 – Käytä /etc/rc.d/rc.local

Tämä menetelmä pätee jopa systemd-pohjaisissa jakeluissa. Jotta tämä menetelmä toimisi, sinun on myönnettävä suoritusoikeudet tiedostolle /etc/rc.d/rc.local seuraavasti:

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

ja lisää skripti tiedoston alaosaan.

Seuraava kuva näyttää, kuinka kaksi esimerkkiskriptiä (/home/gacanepa/script1.sh ja /home/gacanepa/script2.sh) suoritetaan cron<:lla. job ja rc.local sekä niiden tulokset.

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

Muista, että molemmille skripteille on myönnettävä suoritusoikeudet aiemmin:

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

Linux-komentosarjojen suorittaminen sisäänkirjautumisen ja uloskirjautumisen yhteydessä

Suorittaaksesi komentosarjan kirjautumisen tai uloskirjautumisen yhteydessä, käytä ~.bash_profile- ja ~.bash_logout-komentoja. Todennäköisesti sinun on luotava jälkimmäinen tiedosto manuaalisesti. Pudota vain komentosarjaasi kutsuva rivi jokaisen tiedoston alareunaan samalla tavalla kuin ennenkin, ja olet valmis aloittamaan.

Yhteenveto

Tässä artikkelissa olemme selittäneet, kuinka komentosarja suoritetaan uudelleenkäynnistyksen, kirjautumisen ja uloskirjautumisen yhteydessä. Jos ajattelet muita menetelmiä, jotka olisimme voineet sisällyttää tähän, käytä alla olevaa kommenttilomaketta osoittaaksesi ne. Me odotamme yhteydenottoasi!