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