Jak automaticky spouštět příkazy/skripty během restartu nebo spouštění
Vždy mě fascinují věci, které se dějí v zákulisí, když spouštím systém Linux a přihlásím se. Stisknutím tlačítka napájení na holém kovu nebo spuštěním virtuálního počítače uvedete do pohybu řadu událostí, které vedou k plně funkčnímu systému – někdy za méně než minutu. Totéž platí, když se odhlásíte a/nebo vypnete systém.
Co to dělá zajímavějším a zábavnějším, je skutečnost, že můžete nechat operační systém provést určité akce při spouštění a při přihlášení nebo odhlášení.
V tomto distro-agnostickém článku probereme tradiční metody pro dosažení těchto cílů v Linuxu.
Poznámka: Předpokládáme použití Bash jako hlavního prostředí pro události přihlášení a odhlášení. Pokud náhodou používáte jinou, některé z těchto metod mohou, ale nemusí fungovat. V případě pochybností se podívejte do dokumentace vašeho shellu.
Spouštění skriptů Linuxu během restartování nebo spouštění
Existují dva tradiční způsoby, jak spustit příkaz nebo spouštět skripty během spouštění:
Metoda #1 – Použijte cron Job
Kromě obvyklého formátu (minuta/hodina/den v měsíci/měsíc/den v týdnu), který se široce používá k označení plánu, umožňuje plánovač cron také použití @reboot
. Tato direktiva, následovaná absolutní cestou ke skriptu, způsobí, že se spustí, když se počítač zavede.
Tento přístup má však dvě výhrady:
- a) musí být spuštěn démon cron (což je případ za normálních okolností) a
- b) skript nebo soubor crontab musí obsahovat proměnné prostředí (pokud existují), které budou potřeba (další podrobnosti naleznete v tomto vláknu StackOverflow).
Metoda #2 – Použijte /etc/rc.d/rc.local
Tato metoda je platná i pro distribuce založené na systemd. Aby tato metoda fungovala, musíte udělit oprávnění ke spuštění /etc/rc.d/rc.local
následovně:
chmod +x /etc/rc.d/rc.local
a přidejte svůj skript na konec souboru.
Následující obrázek ukazuje, jak spustit dva ukázkové skripty (/home/gacanepa/script1.sh
a /home/gacanepa/script2.sh
) pomocí cronu< job a rc.local a jejich příslušné výsledky.
#!/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
Mějte na paměti, že oběma skriptům musí být předem udělena oprávnění ke spuštění:
chmod +x /home/gacanepa/script1.sh
chmod +x /home/gacanepa/script2.sh
Spouštění Linuxových skriptů při přihlášení a odhlášení
Chcete-li spustit skript při přihlášení nebo odhlášení, použijte ~.bash_profile
a ~.bash_logout
. S největší pravděpodobností budete muset druhý soubor vytvořit ručně. Jednoduše umístěte řádek s vyvoláním vašeho skriptu na konec každého souboru stejným způsobem jako dříve a jste připraveni jít.
souhrn
V tomto článku jsme vysvětlili, jak spustit skript při restartu, přihlášení a odhlášení. Pokud vás napadají další metody, které bychom sem mohli zahrnout, můžete na ně upozornit pomocí níže uvedeného formuláře pro komentáře. Těšíme se na setkání s Vámi!