| # Copyright (c) 2011 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 "Send boot stats after login prompt is visible" |
| author "chromium-os-dev@chromium.org" |
| |
| # This script is primarily responsible for sending boot time statistics |
| # after we finish booting. Completion of this job is also the key |
| # to starting the 'system-services' job. This job needs to run first |
| # because the amount of work that starts with 'system-services' could |
| # otherwise delay the 'bootstat' timestamp, and make boot time |
| # measurements less reliable. |
| |
| # Note, the 'start on' line is modified by chromeos-factoryinstall.ebuild |
| # and mod_for_factory. Please do not change without also changing |
| # those references. |
| # TODO(jrbarnette) The external dependencies that edit this line should |
| # be eliminated. |
| start on login-prompt-visible |
| |
| script |
| # The login-prompt-visible signal is emitted every time the login |
| # screen is displayed. The check below makes sure boot stats are |
| # reported only once per boot. |
| if [ -n "$(bootstat_get_last boot-complete)" ]; then |
| exit 0 |
| fi |
| |
| bootstat boot-complete |
| |
| # If ureadahead is still running, then presumably it's performing |
| # a boot trace. We only care about tracing until login prompt, so |
| # stop the process now. |
| # |
| # We have to ignore the return status in case ureadahead has |
| # already completed, because pkill helpfully exits with a non-zero |
| # status when no process was found. |
| pkill '^ureadahead$' || true |
| |
| # Report boot time and disk usage metrics to UMA. |
| send_boot_metrics & |
| end script |