Re: Gnome Session Services Framework

On Wed, 2005-07-13 at 11:42 +0100, Mark McLoughlin wrote:
> Hi,
> 	Just taken my first look at this stuff; some high level comments:
>   - Its not entirely clear what the semantics of or the need for 
>     dependencies is.
>     What it means right now, according to the code, is that a service 
>     isn't started until its dependency reaches the "running" state. But 
>     when does a service reach the "running" state? As soon as it has 
>     been spawned? As soon as possible after its shared libraries has 
>     been loaded and it can establish a D-BUS connection? Or when all 
>     its initialization is complete and it is ready to provide its 
>     service?
for services using libgnomeservice (none yet), they can set the running
status whenever they see fit.

>     When using gnome-service-launch, the service reaches a "running" 
>     state as soon as it has been spawned. If all services like this, we 
>     get a behaviour similar to the current gnome-session behaviour 
>     where all services are spawned one after the other, as quick as 
>     possible (except for the delay we've introduced by making D-BUS do 
>     the spawning and not spawning the next service until we get 
>     notification that the first service has been spawned)
>     I think the intention here, though, is that services shouldn't be 
>     spawned until their dependencies have been fully initialized. So, 
>     e.g., we wouldn't spawn the panel until the window manager is ready 
>     to manage the panel windows. If that is the case, I'm not sure why 
>     we're doing this ... certainly in the case of the panel, there's no 
>     reason to delay the panel startup that long; the current behaviour 
>     of spawning the panel immediately after the window manager is fine.
right, this is something to look at for 2.14. But for 2.12, I think we
want just to use the service startup for non-session-managed/non-gnome
services. So, for most cases, we just want to set it to running as soon
as the process being wrapped is spawned.

>     Also, with the likes of Vino we'd want it to be one of the last to 
>     start up, but it has no real dependencies. So, should be add some 
>     arbitrary dependency (e.g. NetworkManager) to ensure it gets 
>     started up towards the end? But what happens if NetworkManager 
>     isn't installed.
or maybe have an Order= field.

>     I'm not sure what to suggest - perhaps rename Dependencies to 
>     StartAfter with "spawn immediately after" semantics, add a WaitFor
>     key if we really need the "wait until initialized" semantics and 
>     add a StartLast key for services that should be launched in a 
>     jumble after the important stuff? Hmm.
I think long term (starting in 2.13 probably), what we really want is to
have all those services use libgnomeservice, so that they can set the
status to running as soon as they are fully initialized, and not before.

>   - I'd like to see support for conditional activation - i.e. that a 
>     service is only started if a given GConf key is set and that 
>     gnome-session monitors the GConf key during the session, starting 
>     and shutting down the service based on the value of the key. 
>     Applications for this would be vino, screensaver, esound, ATs etc.
right. What about having a Gconf section for disabled_services? Thus
gnome-session can check the names of the services disabled in GConf and
not start those ones.

>   - Services aren't displayed in the splash screen at the moment, which 
>     basically means the splash screen will be empty. Any plans to fix 
>     that or are we saying that the icons in the splash screen are 
>     effectively useless?
I guess that can be done as bug fixing after feature freeze. So yeah, we
should add that.

>   - How do you switch WMs with this? :-)
we need, for 2.13, a GUI for starting/stopping the services I guess :)
Rodrigo Moya <rodrigo gnome-db org>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]