blob: c2293f3d6e1e820ad63d95c94dc0f408f20b871b [file] [log] [blame]
# Copyright 2018 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "Downloadable content service daemon"
author "chromium-os-dev@chromium.org"
start on starting system-services and stopped imageloader-init
stop on stopping system-services
expect fork
respawn
respawn limit 3 10 # if the job respawns 3 times in 10 seconds, stop trying.
# Let dlcservice daemon be killable as it can restore itself when it's
# consuming too much memory.
oom score -100
env PRELOAD_PATH=/var/cache/dlc-images
env FACTORY_INSTALL_PATH=/mnt/stateful_partition/unencrypted/dlc-factory-images
env PERMS=MS_NOSUID|MS_NODEV|MS_NOEXEC
pre-start script
if [ ! -d "/opt/google/dlc" ]; then
logger -t "${UPSTART_JOB}" "No DLC metadata, stopping on purpose."
stop
exit 0
fi
end script
script
set --
if [ -d "${PRELOAD_PATH}" ]; then
set -- "$@" -b "${PRELOAD_PATH}"
fi
if [ -d "${FACTORY_INSTALL_PATH}" ]; then
set -- "$@" -k '/mnt/stateful_partition,/mnt/stateful_partition,tmpfs,'
set -- "$@" -b "${FACTORY_INSTALL_PATH},,1"
fi
# Add imageloader mount base.
set -- "$@" -k "/run/imageloader,/run/imageloader,none,0x5000|${PERMS}"
exec minijail0 --config /usr/share/minijail/dlcservice.conf \
"$@" \
/usr/sbin/dlcservice
end script