pátek 31. prosince 2010

Skript spouštěný při odhlášení uživatele Gnome

Při odhlášení uživatele v Ubuntu nedojde k ukončení všech uživatelem spuštěných úloh, což osobně zatím moc nechápu. Výsledek je takový, že se odhlásíte, znovu přihlásíte, a některé aplikace se při startu spustí znovu, což může způsobit komplikace v podobě více paralelních instancí. Nejde o programy s grafickým rozhraním, ale o různé démony, ale i běžné skripty. Já narazil například na démony irexec a irxevent, které používám pro dálkové ovládání - vyřešil jsem to skriptem, který se postará o to, aby v systému běžela pouze jedna instance každého. Šlo by démony spustit už initem, ale co když je pak budu chtít deaktivivat, nebo znovu nastartovat po pádu.. Později jsem potřeboval jednu užitečnou, ale trochu nestabilní, aplikaci spustit znovu, jakmile padne, aby mě to neomezovalo v jejím používání. Napsal jsem skript, který aplikaci spouští, při pádu ji resuscituje a umí sám sebe, včetně svého svěřence, ukončit. Abych měl nějakou statistiku, loguji všechny pády. A zde jsem si všiml, že při odhlášení skript stále běží a snaží se dokolečka aplikaci oživovat, což se mu samozřejmě nedaří. Obejít se dá všechno, systémové řešení by bylo lepší, ale nakonec to, o čem chci dnes psát, není jen o řešení zmíněného problému. ...



Takže, jak nejjednodušeji spustit vlastní skript při odhlášení uživatele v prostředí Gnome...

Máme tu adresář /etc/gdm/PostSession/, ve kterém se nachází prázdný skript Default. Můžete využít Default, nebo v daném adresáři vytvořit skript nový. Důležitá jsou nasledující fakta:

- skripty se spouští s právy roota až po odhlášení uživatele ze sezení
- přesto jsou některé zásadní proměnné prostředí nastavené podle prostředí uživatele, jehož odhlášení spuštění skriptu vyvolá

Pokud si v domovském adresáři každého uživatele vytvoříte skript nazvaný například .session_logout_script (nezapomeňte na spustitelný příznak) a do /etc/gdm/PostSession/Default zapíšete před příkaz exit 0 následující řádek:

~/.session_logout_script

můžete mít pro každého uživatele vlastní logout skript.

V této souvislosti musím ještě zmínit adresář /etc/gdm/PreSession/, který nabízí hrátky opačného charakteru, ten jsem ještě nepotřeboval, ale předpokládám, že použití nebude záhadnější, než v případě lougoutu.

Žádné komentáře:

Okomentovat

Zkuste prosím při komentováni používat místo volby Anonymní volbu Název/adresa URL, kde vyplníte nějakou přezdívku, adresu zadávat nemusíte. Vědět, které příspěvky jsou od jednoho člověka, je fajn. Díky.

Pokud by se vám náhodou odeslaný komentář na stránce nezobrazil, vytáhnu ho z koše hned jak si toho všimnu. I Google spam filter se občas sekne.