blob: e45774e15bf4c8a5ae0282e95241ef65c78cc044 [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"
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