| # 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 |
| 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=/var/run/power_manager/power |
| env PREFS_DIR=/var/lib/power_manager |
| env ROOT_RUN_DIR=/var/run/power_manager/root |
| env ROOT_SPOOL_DIR=/var/spool/power_manager/root |
| env DEFAULT_PREFS_DIR=/usr/share/power_manager |
| env VMODULE_ARG=state_controller=1,*backlight_controller=1,ambient_light_handler=1 |
| |
| pre-start script |
| mkdir -p ${LOG_DIR} ${POWER_RUN_DIR} ${PREFS_DIR} |
| chown -R power:power ${LOG_DIR} ${POWER_RUN_DIR} ${PREFS_DIR} |
| chmod 755 ${LOG_DIR} ${POWER_RUN_DIR} ${PREFS_DIR} |
| |
| mkdir -p ${ROOT_RUN_DIR} ${ROOT_SPOOL_DIR} |
| |
| # Change ownership of screen/keyboard backlight and wakeup files. |
| for FILE in \ |
| /proc/acpi/wakeup \ |
| /sys/class/backlight/*/* \ |
| /sys/class/leds/*:kbd_backlight/* \ |
| $(find /sys/devices/ -name "dark_resume_active") \ |
| $(find /sys/devices/ -name "dark_resume_source"); do |
| # Test for existence to skip over wildcards that didn't match anything. |
| if [ -e "${FILE}" ]; then |
| chown power:power "${FILE}" || true |
| fi |
| done |
| end script |
| |
| # Note that we need the full path to powerd because minijail doesn't look |
| # at $PATH. Also, do not set capabilities here using minijail0's -c flag; |
| # doing so will prevent powerd_setuid_helper from running correctly when |
| # executed by powerd. |
| exec minijail0 -u power -g power -G -- \ |
| /usr/bin/powerd \ |
| --prefs_dir=${PREFS_DIR} \ |
| --default_prefs_dir=${DEFAULT_PREFS_DIR} \ |
| --log_dir=${LOG_DIR} \ |
| --run_dir=${POWER_RUN_DIR} \ |
| --vmodule="${VMODULE_ARG}" \ |
| >/var/log/powerd.out 2>&1 |