Start upon existence of multiple devices

Scott James Remnant scott at
Tue Feb 8 21:00:38 UTC 2011

No, device-added is an event.

You misunderstand how and works; and means that a job will be started
after both events have curred, no matter which order they occur in.

You have the following states:

  stop/waiting, empty event operator tree
* device-added YY=yy
  stop/waiting, event operator tree holds device-added YY=yy
* device-added XX=xx
  start/starting, event operator tree holds device-added XX=xx *and*
device-added YY=yy

(and the mirror)

On Tue, Feb 8, 2011 at 12:57 PM, Jan Ceuleers <jan.ceuleers at> wrote:
> On 08/02/11 21:47, Scott James Remnant wrote:
>> In general, this is the exact use case (multiple devices come up in an
>> unknown order) for which the current behavior of "and" is intended
>> for.
>>   start on device_a and device_b
> Thanks Scott.
> I had assumed (after some testing, because the documentation is unclear on
> this point) that the device-added construct is an event rather than a state.
> So a
>    start on device-added XX=xx and device-added YY=yy
> can never be true because no two events are ever simultaneous.
> If you mean something other than using a form of device-added, then how
> should I specify the devices in your above start on construct?
> Thanks, Jan
> --
> upstart-devel mailing list
> upstart-devel at
> Modify settings or unsubscribe at:

More information about the upstart-devel mailing list