Josef Kufner

Twice2down

Script, který ve spolupráci s acpid počítá stisky Power Buttonu nebo jiného čudlíku a podle jejich počtu vykoná nastavený příkaz. Konfigurace je provedena několika proměnými na začátku skriptu. Acpid musí být nastaven tak, aby při stisku onoho čudlíku spustil tento script.

Popis činnosti

Nejdříve skript zkontroluje, zda není zablokován. To je uloženo v souboru $switch_file (default: /var/run/twice2down/disabled) – pokud obsahuje „1“ je zablokován. K tomuto souboru by měli mít přístup všichni uživatelé s právem vypnout počítač.

Poté se skript znovu spustí na pozadí. Původní vlákno se ukončí a nové pokračuje v činnosti. Inkrementuje počítadlo v $counter_file (default: /var/run/twice2down/count), počká daný časový limit ($timeout) a nakonec zjistí, zda se obsah počítadla během počítání nezměnil. Pokud se nezměnil, tak provede příkaz odpovídající obsahu počítadla. Jako signalizaci spuštění příkazu také zapípá (podle obsahu počítadla). V případě, že se obsah čítače změnil, byl mezitím skript znovu spuštěn a proto se tato instance skriptu ukončí – spuštění příkazu obstará nová instance skriptu, která měnila obsah čítače během čekáni.

Instalace a provázání se systémem

Nejdříve je potřeba mít funkční acpid nebo jiného démona na snímání událostí z ACPI, popř. APM. Skript twice2down je určen k tomu, aby byl spouštěn tímto démonem místo defaultních příkazů k vypnutí počítače.

Aby byl skript funkční, je třeba vytvořit adresář /var/run/twice2down s možností zápisu rootem a v něm soubor disabled, do kterého budou mít uživatelé právo k zápisu.

Skript pwrbtn je určen k povolování, resp. zakazování, činnosti skriptu twice2down. Instalace spočívá v pouhém zkopírování do /usr/bin nebo /usr/local/bin a nastavení vhodných práv a vlastníka. Použití je prosté: "pwrbtn [on|off]". "on" povolí činnost sktrptu twice2down a "off" ji zakáže. Osobně tento skript nechávám automaticky spouštět při přihlášení a odhlášení, takž pokud jsem přihlášen, tak nevadí, když se mi pes otře o vypínač ;)

Download