blob: bb5cce07ccdc27b00133b4b57e0bb08e1a72b08e [file] [log] [blame] [edit]
# 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 "Set up esdfs directories"
author "chromium-os-dev@chromium.org"
# The job is started from arc-setup's OnBootContinue().
# Stop on stopping ui to avoid mount leaks in the login screen (b/288954735).
stop on stop-arc-instance or stopping ui
# The job does not have script/exec stanza, so it is considered running forever
# once started until explicitly stopped.
# See: http://upstart.ubuntu.com/cookbook/#jobs-that-run-forever
import CHROMEOS_USER
import CONTAINER_PID
# Use 'never' since terminating this job fails ARC to start.
oom score never
pre-start script
{
echo "Pre-start arc-sdcard"
set -x
# Start the actual mounting process in a separate job. This allows
# arc-setup --mode=mount-sdcard to be interrupted cleanly if the container
# terminates.
exec start arc-sdcard-mount "CHROMEOS_USER=${CHROMEOS_USER}" \
"CONTAINER_PID=${CONTAINER_PID}"
} 2>&1 | logger -t "${UPSTART_JOB}"
end script
post-stop script
{
echo "Post-stop arc-sdcard"
set -x +e
# The arc-sdcard-mount job might still be running. Ensure it dies so that
# the next container invocation can continue cleanly.
stop arc-sdcard-mount
find "/sys/kernel/config/sdcardfs/" -mindepth 1 -maxdepth 1 \
-type d -not -name 'extensions' -exec rmdir {} \+
} 2>&1 | logger -t "${UPSTART_JOB}"
exec /usr/sbin/arc-setup --mode=unmount-sdcard "--log_tag=${UPSTART_JOB}"
end script