Am 07.06.2011 16:00, schrieb James Hunt:
> Hi All,

Hi James,
hi List,

> This mail turned into rather an epic in the writing. The summary is I'm
> interested in thoughts on the two implementation options for "Proposal 2".
> 
> Regards,
> 
> James.
> 
> 
--8<--
> = Proposals =
> 
> == Proposal 1: Provide Event Aliases for Common Scenarios ==
> 
> Create event aliases as shown below:
> 
> |----------------+------------------|
> | Existing Event | Event Alias      |
> |----------------+------------------|
> | runlevel 0     | halt             |
> | runlevel 1     | single-user-mode |
> | runlevel S     | single-user-mode |
> | runlevel 2     | multi-user-mode  |
> | runlevel 6     | reboot           |
> | runlevel [016] | shutdown         |
> |----------------+------------------|

Will this events get emitted by upstart itself?

> == Proposal 2: Provide Abstract Jobs for Common Services ==
> 
> |-----------------+-------------------------------------------------------------------|
> | Abstract Job    | Description                                               
>         |
> |-----------------+-------------------------------------------------------------------|
> | display-manager | gdm, kdm, lightm, etc.                                    
>         |
> | network-manager | NetworkManager, wicd, connman, etc                        
>         |
> | firewall        | ufw alias.                                                
>         |
> | network         | started when *all* configured network interfaces and 
> bridges "up" |
> | graphics-card   | starts when first graphics card added to system.          
>         |
> |-----------------+-------------------------------------------------------------------|
> 
> === Implementation ===
> 
> There are two simple methods here we're considering.
> 
> ==== Option 1 ====
> 
> Update every package that provides a service such that its Job
> Configuration File sets and exports a "well-known" variable. The
> proposed list of environment variables which represent these services
> is:
> 
>   DISPLAY_MANAGER
>   FIREWALL
>   GRAPHICS_CARD
>   NETWORK
>   NETWORK_MANAGER
> 
> For example, each display manager package would be updated such that its
> .conf file specified:
> 
>   env    DISPLAY_MANAGER=y
>   export DISPLAY_MANAGER
> 
> Then, any job that requires a display manager could say:
> 
>   start on starting DISPLAY_MANAGER=y
--8<--
> ==== Option 2 ====
> 
> Create a Job Configuration File that hard-codes the list of known
> service providers. For example for "display-manger", we could have:
> 
>   start on (starting gdm
>         or (starting kdm
>         or (starting lightdm
>         or (starting lxdm
>         or (starting slim
>         or (starting wdm
>         or  starting xdm))))))
> 
>   stop on (stopping gdm
>         or (stopping kdm
>         or (stopping lightdm
>         or (stopping lxdm
>         or (stopping slim
>         or (stopping wdm
>         or  stopping xdm))))))
> 
>   env    ABSTRACT_JOB=y
>   export ABSTRACT_JOB
--8<--

Well, i don't like Options 1 and 2 as they look as hackish as the things
you want to get rid of in the first place...

[RFC] Option 3:

add an new "alias" stanza that sends an event (in parallel to all of the
jobs main events) with JOB=$alias (and waits for booth to complete where
appropriate).

As all "Common Services" should be mutually exclusive installed, so each
of them can use the same alias stanza value.


Marc

-- 
upstart-devel mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/upstart-devel

Reply via email to