| # 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 |