Bii a ṣe le ṣe Awọn Aṣẹ Aifọwọyi/Awọn iwe afọwọkọ Lakoko Atunbere tabi Ibẹrẹ


Awọn ohun ti n lọ lẹhin awọn oju iṣẹlẹ nigbagbogbo ni itara mi nigbati Mo bata eto Linux kan ati wọle. Nipa titẹ bọtini agbara lori irin ti o ni igboro tabi bẹrẹ ẹrọ foju kan, o fi iṣipopada lẹsẹsẹ awọn iṣẹlẹ ti o yorisi eto iṣẹ-ṣiṣe ni kikun - nigbakan ni o kere ju iṣẹju kan. Bakan naa ni otitọ nigbati o wọle ati/tabi tiipa eto naa.

Ohun ti o jẹ ki eyi jẹ igbadun ati igbadun diẹ sii ni otitọ pe o le jẹ ki ẹrọ ṣiṣe ṣiṣe awọn iṣe kan nigbati o bata bata ati nigbati o wọle tabi jade.

Ninu nkan distro-agnostic yii a yoo jiroro awọn ọna ibile fun ṣiṣe awọn ibi-afẹde wọnyi ni Linux.

Akiyesi: A yoo gba lilo Bash bi ikarahun akọkọ fun ibuwolu wọle ati awọn iṣẹlẹ ami-iṣẹ jade. Ti o ba ṣẹlẹ lo ọkan miiran, diẹ ninu awọn ọna wọnyi le tabi le ma ṣiṣẹ. Ti o ba ni iyemeji, tọka si iwe ti ikarahun rẹ.

Ṣiṣe Awọn iwe afọwọkọ Linux Lakoko Atunbere tabi Ibẹrẹ

Awọn ọna ibile meji lo wa lati ṣe pipaṣẹ kan tabi ṣiṣe awọn iwe afọwọkọ lakoko ibẹrẹ:

Yato si ọna kika (iṣẹju/wakati/ọjọ ti oṣu/oṣu/ọjọ ti ọsẹ) eyiti o lo ni ibigbogbo lati tọka iṣeto kan, oluṣeto cron tun ngbanilaaye lilo ti @reboot . Itọsọna yii, atẹle nipa ọna pipe si iwe afọwọkọ, yoo fa ki o ṣiṣẹ nigbati ẹrọ bata bata naa.

Sibẹsibẹ, awọn itaniji meji wa si ọna yii:

  1. a) cron daemon gbọdọ wa ni ṣiṣiṣẹ (eyiti o jẹ ọran labẹ awọn ipo deede), ati
  2. b) iwe afọwọkọ tabi faili crontab gbọdọ ni awọn oniyipada ayika (ti o ba jẹ eyikeyi) ti yoo nilo (tọka si okun StackOverflow yii fun awọn alaye diẹ sii).

Ọna yii wulo paapaa fun awọn pinpin orisun eto. Ni ibere fun ọna yii lati ṣiṣẹ, o gbọdọ fun awọn igbanilaaye ṣiṣe si /etc/rc.d/rc.local gẹgẹbi atẹle:

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

ki o ṣafikun iwe afọwọkọ rẹ ni isalẹ faili naa.

Aworan ti n tẹle fihan bi a ṣe le ṣe awọn iwe afọwọkọ ayẹwo meji ( /home/gacanepa/script1.sh ati /home/gacanepa/script2.sh ) ni lilo iṣẹ cron ati rc. agbegbe, lẹsẹsẹ, ati awọn abajade tiwọn.

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

Ranti pe awọn iwe afọwọkọ mejeeji gbọdọ funni ni ṣiṣe awọn igbanilaaye tẹlẹ:

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

Ṣiṣe Awọn iwe afọwọkọ Linux ni Logon ati Logout

Lati ṣiṣẹ iwe afọwọkọ kan ni ibuwolu wọle tabi aami apamọ, lo ~ .bash_profile ati ~ .bash_logout , lẹsẹsẹ. O ṣeese, iwọ yoo nilo lati ṣẹda faili ikẹhin pẹlu ọwọ. Kan ju ila kan ti n pe iwe afọwọkọ rẹ silẹ ni isalẹ faili kọọkan ni aṣa kanna bi tẹlẹ ati pe o ti ṣetan lati lọ.

Ninu nkan yii a ti ṣalaye bi o ṣe le ṣiṣe iwe afọwọkọ ni atunbere, ibuwolu wọle, ati aami iwọle. Ti o ba le ronu ti awọn ọna miiran ti a le ti fi sii nibi, ni ọfẹ lati lo fọọmu asọye ni isalẹ lati tọka wọn. A n reti lati gbọ lati ọdọ rẹ!