Kategorie: Skripty

Automatické spouštění skriptů

Popis možností automatického spouštění příkazů nebo celých skriptů. Především spouštění před zobrazením přihlašovací obrazovky pod uživatelem root.

Tento návod využívá systémové skripty, do kterých se často shodí připsat volání vlastního skriptu a nechat ho tak spouštět při nějaké události, ale neměli bychom přitom zasahovat do jeho původního obsahu. Vlastní příkazy doporučuji připsat nakonec, ale PŘED příkaz exit 0!

Před zobrazením konzolové přihlašovací obrazovky

/etc/rc.local
Tento skript je spouštěn automaticky před vstupem do víceuživatelského režimu. To znamená že se spouští pod superuživatelem root a před výzvou k zadání přihlašovacích údajů obvyklou po běžném startu linuxu. Ta se zároveň nezobrazí dokud tento skript neskončí. Zajímavé je použití následujících příkazů:
su
Po startu počítače se rovnou zobrazí konzole roota, bez jakéhokoli zadávání hesla. Může se využít pro automatické konzolové přihlašování.
poweroff
Po skončení skriptu (předpokládám že před toto vložíte nějaké další příkazy) se počítač vypne. Uživatel s ním nemůže nijak komunikovat, což se může hodit pro některé automatizované operace. (Pro servis můžeme použít záchranný jednouživatelský režim který jsme prozíravě ponechali v GRUBu a zaheslovali)

GDM - Před zobrazením přihlašovací obrazovky (nebo automatickým přihlášením)

/etc/gdm/Init/Default
Tento skript je spouštěn po startu GDM pod uživatelem root. Pokud odtud tedy spustíme nějaký program na pozadí (jako například VNC server), nejenom že poběží na přihlašovací obrazovce, ale i pod všemi uživateli kteří se přihlásí! Pokud tedy takto spustíme zmíněný VNC server, bude umožňovat vzdálený přístup k ploše všude, tedy ne jako VNC server zahrnutý v Gnome, pouze když bude přihlášen uživatel který si toto nastaví.

GDM - Při přihlášení uživatele

/etc/gdm/PreSession/Default

GDM - Při odhlášení uživatele

/etc/gdm/PostSession/Default

Po přihlášení uživatele z konzole nebo SSH

~/.profile
Může být nahrazen:
~/.bash_profile
Nebo:
~/.bash_login
Které ale ve výchozí konfiguraci nejsou vytvořené.

Před odhlášením uživatele z konzole nebo SSH

~/.bash_logout

inittab

/etc/inittab
Zde jdou nastavit příkazy spouštěné při startu počítače v různých runlevelech. Například tady se ve všech runlevelech spouští getty, která zajistí zobrazení konzolové přihlašovací obrazovky:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Nas vlastni programek, ktery se bude spoustet v runlevelu 5
x:5:respawn:/root/skript.sh argument
Do runlevelu 5 se můžeme dostat například pomocí telinit:
telinit 5
Pokud v něm už jsme, můžeme ho restartovat dočasným přechodem do runlevelu 3:
telinit 3 ; sleep 5 ; telinit 5
V Ubuntu 10 je ale inittab po čisté instalaci prázdný.

Komentáře


Nebyly přidány žádné komentáře.