Zdravim konferenci a obracim se s prosbou.<br><br>-----<br>Pozn: Prave ve chvili, kdy jsem napsal tenhle prispevek me napadla jedna vec, ktera se ukazala byt spravnou. Bylo mi lito to cele mazat, tak pisu dotaz a zaroven i reseni, treba se to nekomu bude hodit. Resenim problemu je zavolani &quot;gobject.threads_init()&quot; pred spustenim hlavni smycky. Pokud ale znate elegantnejsi reseni, jak sestrelit Dbus sluzbu, klidne napiste :).<br>
<br>loop = gobject.MainLoop()<br>gobject.threads_init()<br>loop.run()<br>----<br>Vytvarim v pythonu DBus service, ktera se bude spoustet pomoci DBus autostart. Jedna se o mechanismus, kdy se python skript zavola ve chvili, kdy jiny proces vola sluzbu, kterou dany skript obhospodaruje. Bohuzel (lec zcela pochopitelne) zustane po vyrizeni sluzby skript viset v pameti. Nenasel jsem standardni DBusovy mechanismus, kterym by slo sluzbu ukoncit, pokud neni nejaky cas volana, proto jsem zkusil poresit toto vlastnimi silami.<br>
<br>Pri startu sluzby chci vytvorit vlakno, ktere bude periodicky (cca ob pet az deset sekund) kontrolovat, jestli behem teto doby byla zavolana nejaka metoda sluzby. V pripade, ze nikoliv, dojde k ukonceni skriptu.<br><br>
Figl je v tom, ze ve chvili, kdy zavolam gobject.MainLoop() (aplikacni smycka obhospodarujici mimojine DBus), prestane mi fungovat vlakno watchdogu.<br><br>Nevi nekdo, jak toto resit?<br><br>Moc diky,<br>Marek<br>