blob: 10458f5e39b7c62c7c00b52802ebbd38a9e4de58 [file] [log] [blame]
# Copyright (c) 2012 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 Chromium OS power daemon"
author "chromium-os-dev@chromium.org"
# Note, the 'start on' line is modified by chromeos-factoryinstall ebuild.
# Please do not change it without also changing that reference.
start on started boot-services
stop on stopping boot-services
expect fork
respawn
respawn limit 3 10 # if the job respawns 3 times in 10 seconds, stop trying.
env LOG_DIR=/var/log/power_manager
env POWER_RUN_DIR=/run/power_manager/power
env PREFS_DIR=/var/lib/power_manager
env ROOT_RUN_DIR=/run/power_manager/root
env ROOT_SPOOL_DIR=/var/spool/power_manager/root
env VPD_CACHE_FILE=/mnt/stateful_partition/unencrypted/cache/vpd/filtered.txt
env MAX_NITS_PREF=internal_backlight_max_nits
env PM_TEST_DELAY_FILE=/sys/power/pm_test_delay
# Add modules here in --vmodule format for debugging.
env VMODULE_ARG=
env UPSTART_RUN=1
pre-start script
exec /usr/share/cros/init/powerd-pre-start.sh
end script
# Grant the following capabilities to powerd:
# CAP_WAKE_ALARM - Required by powerd to set wake up alarms for the instance.
#
# The -B 0x3 flag instructs Minijail to skip setting and locking the
# SECURE_NOROOT securebit. This allows powerd_setuid_helper, which is forked and
# exec'ed from powerd, to run as (root:power) with all effective capabilities
# after it calls setuid(2).
exec minijail0 -u power -c 0x800000000 --ambient -g power -B 0x3 -G -i -- \
/usr/bin/powerd \
--log_dir=${LOG_DIR} \
--run_dir=${POWER_RUN_DIR} \
--vmodule="${VMODULE_ARG}" \
>/var/log/powerd.out 2>&1