| # 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" |
| |
| 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 |
| # TODO(derat): Just use /var/run/power_manager after there isn't a portion |
| # of the power manager running as root: http://crosbug.com/36510 |
| env RUN_DIR=/var/run/power_manager/power |
| env PREFS_DIR=/var/lib/power_manager |
| env DEFAULT_PREFS_DIR=/usr/share/power_manager |
| |
| pre-start script |
| mkdir -p ${LOG_DIR} |
| chown power:power ${LOG_DIR} |
| # TODO(derat): Stop doing this sometime around 27, after we're pretty |
| # confident that the old chronos-owned symlink has been removed. |
| rm -f ${LOG_DIR}/powerd.LATEST |
| |
| mkdir -p ${RUN_DIR} |
| chown -R power:power ${RUN_DIR} |
| |
| mkdir -p ${PREFS_DIR} |
| # TODO(derat): Remove chronos writability after giving Chrome a better |
| # way to set prefs than by writing into powerd's prefs directory: |
| # http://crosbug.com/36889 |
| chown -R power:chronos ${PREFS_DIR} |
| chmod 770 ${PREFS_DIR} |
| if [ -e ${PREFS_DIR}/lock_on_idle_suspend ]; then |
| chown chronos:chronos ${PREFS_DIR}/lock_on_idle_suspend |
| fi |
| end script |
| |
| # Note that we need the full path to powerd because minijail doesn't look |
| # at $PATH. |
| 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=${RUN_DIR} \ |
| >/var/log/powerd.out 2>&1 |