# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description     "Job to trigger boot services"
author          "chromium-os-dev@chromium.org"

# This job is used as a milestone marker for jobs that are run at
# system boot right after chromeos_startup.  Jobs should only depend
# on this milestone if the user's login experience could be hampered
# by the job's absence.  Jobs that can be delayed until after the
# login screen is presented should depend on 'system-services'
# instead.
#
# Standard usage:
#   start on started boot-services
#   stop on stopping boot-services
# Jobs that normally terminate in a bounded time (i.e. don't use
# 'respawn') should omit the 'stop on' stanza.
#
# Jobs that depend on boot-services as described above can assume
# the following:
#   * The dbus daemon is running; jobs are free to rely on dbus
#     services.
#   * A basic filesystem corresponding to the requirements of the
#     Linux FHS is available.
#   * Messages can be logged via syslog based services.

start on stopped startup
stop on stopping pre-shutdown

# We purposely omit the main process.  upstart marks us running
# on the first event, and ignores all subsequent events until we
# stop.
