Vyhledávání na webu

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:

  1. a) musí být spuštěn démon cron (což je případ za normálních okolností) a
  2. 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!