<p>James, </p>
<p>thank you very much, for your clear explanation.</p>
<div class="gmail_quote">El 20/05/2015 20:07, "James Cameron" <<a href="mailto:quozl@laptop.org">quozl@laptop.org</a>> escribió:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, May 20, 2015 at 10:43:23AM -0300, Gustavo Duarte wrote:<br>
> Notificator: There is a Sugar Activity who shows Notification messages<br>
> for the kid.<br>
><br>
> Daemon: There is an script running on cron, who get new notification<br>
> from a Server.<br>
><br>
> I need communicate the Daemon with the Notificator, so when Daemon<br>
> receive a new notification from Server, it'll send a signal to<br>
> Notificator.<br>
><br>
> Notificator when receive the signal, should refresh a widget.<br>
><br>
> I know a way to do that, using system signals, but i wonder if Sugar<br>
> has another way to achieve that.<br>
<br>
What you describe is interprocess communication.<br>
<br>
Sugar uses several methods for communication with system daemons.<br>
<br>
The most frequently coded is D-Bus.<br>
<a href="http://en.wikipedia.org/wiki/D-Bus" target="_blank">http://en.wikipedia.org/wiki/D-Bus</a><br>
<br>
Other methods in Python are<br>
<a href="https://docs.python.org/2/library/ipc.html" target="_blank">https://docs.python.org/2/library/ipc.html</a><br>
<br>
You can use files, as Gonzalo says, but try to place them in a path<br>
that does not cause writes to disk; e.g. /tmp ... otherwise sometimes<br>
the kernel will reschedule the process that is writing, and this can<br>
slow performance.<br>
<br>
My preference for your scenario is signals:<br>
<br>
1.  Notificator calls os.getpid and writes to /tmp/notificator.pid<br>
<br>
2.  Notificator calls signal.signal to request a callback on SIGUSR1,<br>
<br>
3.  Daemon reads /tmp/notificator.pid and calls os.kill(pid, SIGUSR1),<br>
kill(1), or kill(3) to send signal.<br>
<br>
An example here:<br>
<a href="http://dev.laptop.org/git/projects/runin/tree/runin-gtk" target="_blank">http://dev.laptop.org/git/projects/runin/tree/runin-gtk</a><br>
<br>
Signals become more complex if the communication is complex, and there<br>
are a limited number of different signals.  That's when I would<br>
suggest D-Bus.<br>
<br>
--<br>
James Cameron<br>
<a href="http://quozl.linux.org.au/" target="_blank">http://quozl.linux.org.au/</a><br>
</blockquote></div>