[SailfishDevel] Keep an application running without keeping the window open

Marcin Mielniczuk marmistrzmar at gmail.com
Sat Feb 17 19:16:57 UTC 2018


I'm not sure if that's a good choice when trying to achieve portability.
Usually on desktop you'd rather have a monolithic application with just
minimize to tray.

Any other options?


On 05.02.2018 10:33, rinigus wrote:
> Hi,
>
> the obvious solution is to run service that is 24/7 on and separate
> client for GUI. That's what stock messaging is doing. I would
> recommend it and use some simple messaging API for communicating
> between them. There are probably many APIs to choose that will allow
> you to set it up simply.
>
> If you can withstand short shutdown of the service then you can
> combine it into the same application. It would require that
> application will start in GUI or server mode depending on command line
> option. If started in GUI mode, you would have to 
>
> * shut down service via systemd
> * establish new connections
>
> and on GUI exit you would have to 
>
> * drop all connections
> * start service via systemd
>
> The latter is the way OSM Scout Server works with the adjustment that
> its using systemd sockets to keep it switched off when user is not
> accessing it. Note that it was done for historical reasons (signaling
> between parts was implemented via Qt) and since its mostly used as a
> service anyway (users don't need to access GUI for weeks).
>
> I would still recommend splitting service/GUI parts and use some
> messaging protocol in between. Myself I would have used zeromq, but
> you could choose probably many others.
>
> Cheers,
>
> Rinigus
>
> On Mon, Feb 5, 2018 at 11:17 AM, Marcin Mielniczuk
> <marmistrzmar at gmail.com <mailto:marmistrzmar at gmail.com>> wrote:
>
>     Hi,
>
>     When creating SFOS applications which should run 24/7 (e.g. IMs) we
>     would like to achieve similar behavior as the stock applications, e.g.
>     the stock e-mail client: the sync (*) runs in the background, even
>     though the application is closed. A window staying open just to make
>     sure the sync goes on clutters the open app view and makes it more
>     difficult to manage the open applications.
>
>     On a desktop DE one would simply minimize the application to tray.
>     Alternatively, one could create a daemon which the client app would
>     communicate with using UNIX sockets, but it greatly increases the
>     complexity of the application and slows down the development.
>
>     What's the easiest way to keep the sync process in the background
>     without keeping the window open?
>
>     Regards,
>     Marcin
>
>     (*) when speaking sync, I mean any kind of waiting for a remote event,
>     no matter if it's done by idle TCP (which is good) or HTTP polling
>     (which is not good)
>
>
>     _______________________________________________
>     SailfishOS.org Devel mailing list
>     To unsubscribe, please send a mail to
>     devel-unsubscribe at lists.sailfishos.org
>     <mailto:devel-unsubscribe at lists.sailfishos.org>
>
>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20180217/b5cea97b/attachment.html>


More information about the Devel mailing list