Weboldal keresés

A parancsok/szkriptek automatikus végrehajtása újraindítás vagy indítás során


Mindig lenyűgöznek a kulisszák mögött zajló dolgok, amikor elindítok egy Linux rendszert és bejelentkezek. Ha megnyomja a bekapcsológombot egy csupasz fémen, vagy elindít egy virtuális gépet, olyan események sorozatát indítja el, amelyek egy teljesen működőképes rendszerhez vezetnek – néha kevesebb, mint egy perc alatt. Ugyanez igaz, amikor kijelentkezik és/vagy leállítja a rendszert.

Ami ezt érdekesebbé és szórakoztatóbbá teszi, az az a tény, hogy az operációs rendszer végrehajthat bizonyos műveleteket a rendszerindításkor, illetve bejelentkezéskor vagy kijelentkezéskor.

Ebben a disztro-agnosztikus cikkben a Linuxban e célok elérésének hagyományos módszereit tárgyaljuk.

Megjegyzés: Feltételezzük, hogy a Bash-t használjuk fő shellként a bejelentkezési és kijelentkezési eseményekhez. Ha véletlenül egy másikat használ, ezek közül néhány módszer működhet, vagy nem. Ha kétségei vannak, olvassa el a héj dokumentációját.

Linux-szkriptek végrehajtása újraindítás vagy indítás során

Két hagyományos módszer létezik a parancsok végrehajtására vagy a parancsfájlok futtatására az indítás során:

1. módszer – Cron Job használata

A szokásos formátum (perc/óra/hónap/hónap/hét napja) mellett, amelyet széles körben használnak az ütemezés jelzésére, a cron ütemező lehetővé teszi a @reboot használatát is. Ez a direktíva, amelyet a parancsfájl abszolút elérési útja követ, a gép indításakor futni fogja.

Ennek a megközelítésnek azonban van két figyelmeztetése:

  1. a) a cron démonnak futnia kell (ami normál körülmények között így van), és
  2. b) a szkriptnek vagy a crontab fájlnak tartalmaznia kell a szükséges környezeti változókat (ha vannak ilyenek) (további részletekért tekintse meg ezt a StackOverflow szálat).

2. módszer – Használja az /etc/rc.d/rc.local fájlt

Ez a módszer még systemd alapú disztribúciókra is érvényes. Ahhoz, hogy ez a módszer működjön, végrehajtási engedélyeket kell adnia az /etc/rc.d/rc.local számára az alábbiak szerint:

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

és adja hozzá a szkriptet a fájl aljához.

A következő képen látható, hogyan kell két minta szkriptet (/home/gacanepa/script1.sh és /home/gacanepa/script2.sh) futtatni cron< használatával job és rc.local, illetve ezek eredményei.

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

Ne feledje, hogy mindkét szkriptnek előzetesen végrehajtási engedélyt kell adni:

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

Linux szkriptek végrehajtása bejelentkezéskor és kijelentkezéskor

Egy szkript végrehajtásához bejelentkezéskor vagy kijelentkezéskor használja a ~.bash_profile és a ~.bash_logout parancsot. Valószínűleg az utóbbi fájlt manuálisan kell létrehoznia. Csak dobjon egy sort, amely meghívja a szkriptet az egyes fájlok aljára, ugyanúgy, mint korábban, és máris készen áll.

Összegzés

Ebben a cikkben elmagyaráztuk, hogyan kell futtatni a szkriptet újraindításkor, bejelentkezéskor és kijelentkezéskor. Ha eszébe jut más módszerek, amelyeket ide sorolhattunk volna, használja az alábbi megjegyzés űrlapot, hogy rámutasson rájuk. Várom válaszukat!