GNU/Linux >> Znalost Linux >  >> Linux

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ádět 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 :Budeme předpokládat použití Bash jako hlavní shell 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. Pokud máte pochybnosti, podívejte se do dokumentace vašeho shellu.

Spouštění skriptů Linuxu během restartování nebo spouštění

Existují dva tradiční způsoby provádění příkazu nebo spouštění skriptů během spouštění:

Metoda č. 1 – Použijte úlohu cron

Kromě obvyklého formátu (minuta / hodina / den měsíce / 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, za kterou následuje absolutní cesta 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 takto:

# 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.

script1.sh:
#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
script2.sh:
#!/bin/bash
SITE="Tecmint.com"
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í skriptů pro Linux 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 , resp. 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 předtím a jste připraveni jít.

Shrnutí

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 je poukázat pomocí níže uvedeného formuláře pro komentáře. Těšíme se na vaši zprávu!


Linux
  1. Jak spustit skript shellu při spuštění

  2. Jak spustit Python skript z Javy?

  3. Jak spustit skript na pozadí (linux openwrt)?

  1. Jak zakázat příkazy vypnutí a restartu v Linuxu

  2. Jak spustit soubor bez přípony .sh v shellu

  3. Systemd :Jak spustit skript pouze při vypnutí (ne při restartu)

  1. Jak nastavit Startup &Shutdown Script na Gentoo Linux

  2. Jak napsat spouštěcí skript pro Systemd?

  3. Jak spouštět skripty Pythonu ze shellu