# Copyright 2018 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    "Abstract job that runs when boot-services is complete"
author         "chromium-os-dev@chromium.org"

# The shill task and iptables will start when this task is started.
# This allows shill to be restarted without restarting iptables.
#
# https://crbug.com/783125: "started boot-services" is relatively early in the
# boot process. This is necessary for getting online quickly, a metric which we
# optimize for alongside "time to login screen." Both automated tests (which
# want to, for example, SSH as quickly as possible after reboot) and users (who
# otherwise may wait several more seconds before network selection/connection
# UI shows up) have noticed regressions in this area in the past.
start on started boot-services
