# Copyright 2019 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    "Start the wilco DTC dispatcher service"
author         "chromium-os-dev@chromium.org"

# Start the wilco_dtc_dispatcher marker job, which is responsible for managing
# lifetime of wilco DTC (diagnostics and telemetry controller) related jobs
# (currently, wilco_dtc_supportd and wilco_dtc).
#
# Standard usage:
#   start on starting wilco_dtc_dispatcher
#   stop on stopped wilco_dtc_dispatcher
#
# Jobs that depend on wilco_dtc_dispatcher as described above can assume the
# following:
# * The wilco DTC is allowed by a corresponding device policy.
# * An affiliated-user / no user is logged in.
stop on stopping system-services
