blob: 1c61837071d22bbe904379e170b7cd31d7c33a4b [file] [edit]
# Copyright 2017 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "Start camera algorithm service"
author "chromium-os-dev@chromium.org"
start on started system-services
stop on stopping system-services
# Make the camera jobs killable, because if it has a leak it's better to restart
# it than to OOM-panic.
oom score 0
expect fork
respawn
respawn limit 10 5
env SECCOMP_POLICY_FILE=/usr/share/policy/cros-camera-algo-seccomp.policy
env CAMERA_LIBFS_PATH=/usr/share/cros-camera/libfs
env FORCE_STOP_CROS_CAMERA_ALGO_PATH=/run/camera/force_stop_cros_camera_algo
pre-start script
set -x
# Stop the service if there is no mipi camera.
if [ -f "${FORCE_STOP_CROS_CAMERA_ALGO_PATH}" ]; then
stop
exit 0
fi
# Run the board-specific setup hooks, if any.
sh /etc/camera/setup-hooks-algo.sh || true
end script
post-start script
# Run the board-specific hooks, if any.
sh /etc/camera/post-start-hooks-algo.sh || true
end script
script
# Start constructing minijail0 args...
args=""
# Use Minijail config file.
args="$args --config /usr/share/minijail/cros-camera-algo.conf"
# Bind mount camera libraries.
args="$args -b ${CAMERA_LIBFS_PATH}"
# Drop privileges and set seccomp filter.
args="$args -n -S ${SECCOMP_POLICY_FILE}"
args="$args -- /usr/bin/cros_camera_algo"
exec minijail0 $args
end script