Gaýtadan açmak ýa-da işe başlanda buýruklary/skriptleri nädip awtomatiki ýerine ýetirmeli


Linux ulgamyny açyp, girenimde sahnanyň aňyrsynda bolup geçýän zatlar meni hemişe haýran galdyrýar. Arealaňaç metalda güýç düwmesini basyp ýa-da wirtual maşyny işe girizip, doly işleýän ulgama alyp barýan birnäçe hadysany herekete getirýärsiňiz - käwagt bir minutdanam az wagtyň içinde. Ulgamdan çykanyňyzda we/ýa-da ýapanyňyzda hem edil şonuň ýaly.

Muny has gyzykly we gyzykly edýän zat, operasiýa ulgamynyň açylanda we gireniňizde ýa-da hasabyňyzdan çykanyňyzda belli bir hereketleri ýerine ýetirip biljekdigiňizdir.

Bu distro-agnostik makalada Linux-da bu maksatlara ýetmegiň adaty usullaryny ara alyp maslahatlaşarys.

Bellik: Giriş we çykyş wakalary üçin Başyň esasy gabygy hökmünde ulanylarys. Başga birini ulansaňyz, bu usullaryň käbiri işlemän biler ýa-da işlemän biler. Şübheli bolsaňyz, gabygyňyzyň resminamalaryna serediň.

Gaýtadan açmak ýa-da işe başlamak wagtynda Linux skriptlerini ýerine ýetirmek

Başlangyç wagtynda buýrugy ýerine ýetirmek ýa-da skriptleri işletmek üçin iki sany adaty usul bar:

Tertibi görkezmek üçin giňden ulanylýan adaty formatdan (minut/sagat/aýyň/aýyň/hepdäniň güni) başga-da, kron meýilleşdiriji @reboot ulanmaga hem rugsat berýär. Scriptazuwyň mutlak ýoly bilen ýerine ýetirilen bu görkezme, maşyn açylanda işlemegine sebäp bolar.

Şeýle-de bolsa, bu çemeleşmäniň iki gowagy bar:

  1. a) kron daemon işlemeli (adaty ýagdaýlarda şeýle) we
  2. b) skript ýa-da crontab faýly zerur boljak daşky gurşaw üýtgeýjilerini (bar bolsa) öz içine almalydyr (has giňişleýin maglumat üçin şu StackOverflow sapagyna serediň).

Bu usul hatda systemd esasly paýlamalar üçinem dogry. Bu usulyň işlemegi üçin /etc/rc.d/rc.local ýerine ýetiriş rugsatlaryny aşakdaky ýaly bermeli:

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

we faýlyň aşagyndaky skriptiňizi goşuň.

Aşakdaky surat, kron işini we rc ulanyp, iki sany nusga skriptini ( /home/gacanepa/script1.sh we /home/gacanepa/script2.sh ) nädip işletmelidigini görkezýär. ýerli we degişlilikde netijeleri.

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

Iki skriptiň hem ozal ýerine ýetirmek üçin rugsat berilmelidigini ýadyňyzdan çykarmaň:

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

Logon we Logout-da Linux skriptlerini ýerine ýetirmek

Girişde ýa-da çykyşda skript ýerine ýetirmek üçin degişlilikde ~ .bash_profile we ~ .bash_logout ulanyň. Iň soňky faýly el bilen döretmeli bolarsyňyz. Her faýlyň aşagyndaky skriptiňizi öňküsi ýaly görnüşde goýuň we gitmäge taýyn.

Bu makalada skripti gaýtadan açmak, giriş we çykmak arkaly nädip işletmelidigini düşündirdik. Bu ýere goşup biljek beýleki usullarymyz hakda pikir edip bilýän bolsaňyz, aşakdaky düşündiriş formuny görkezmek üçin arkaýyn boluň. Sizden eşitmäge sabyrsyzlyk bilen garaşýarys!