blob: 2a3dcb519669559256de4bdac03b9fb50437cc15 [file] [log] [blame]
# Copyright 2020 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 "Handle any necessary ARC upgrades"
author "chromium-os-dev@chromium.org"
start on starting arcvm-post-login-services
stop on stopping ui or stopping arcvm-post-login-services
# Use 'never' since terminating this job fails ARC to start.
oom score never
task
import CHROMEOS_USER
pre-start script
CHROMEOS_USER_HOME=$(cryptohome-path system "${CHROMEOS_USER}")
if [ ! -d "${CHROMEOS_USER_HOME}" ]; then
logger -t "${UPSTART_JOB}" \
"User home ${CHROMEOS_USER_HOME} does not exist"
exit 1
fi
exec /sbin/minijail0 \
-c 'cap_dac_override,cap_dac_read_search,cap_chown,cap_fowner+eip' \
--profile=minimalistic-mountns --uts -e -l -p -N -K -v \
-b /home \
-k "${CHROMEOS_USER_HOME},${CHROMEOS_USER_HOME},none,MS_BIND|MS_REC" \
-k "tmpfs,/run,tmpfs,MS_NOSUID|MS_NODEV|MS_NOEXEC" \
-k '/run/arcvm,/run/arcvm,none,MS_BIND|MS_REC' \
-k 'tmpfs,/var,tmpfs,MS_NOSUID|MS_NODEV|MS_NOEXEC' \
-k '/var/lib/metrics,/var/lib/metrics,none,MS_BIND|MS_REC' \
-- /usr/sbin/arc-handle-upgrade --log_tag=arc-handle-upgrade
end script
# This is needed to ensure this job doesn't remain in the started state.
exec /bin/true