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:
- a) a cron démonnak futnia kell (ami normál körülmények között így van), és
- 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!