| # Copyright (c) 2011 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. |
| |
| # cros-disks upstart job |
| |
| env CROS_DISKS_UID=213 |
| env CROS_DISKS_GID=213 |
| env CROS_DISKS_OPTS='' |
| |
| # Set the default polling interval in milliseconds on block devices. |
| # This in-kernel polling mechanism is available since kernel 2.6.38. |
| # The poll timer slack is set to 25% in kernel (linux/block/genhd.c). |
| # With a polling interval <= 1 second, the system seems to react to |
| # eject requests from a CD-ROM drive more responsively. |
| env BLOCK_DEFAULT_POLL_MSECS=1000 |
| env BLOCK_DEFAULT_POLL_MSECS_SYSFS_PATH=/sys/module/block/parameters/events_dfl_poll_msecs |
| |
| # Minimum log level defined in base/logging.h. |
| # 0:INFO, 1:WARNING, 2:ERROR, 3:ERROR_REPORT, 4:FATAL |
| # -1:VLOG(1), -2:VLOG(2), etc |
| # Set to log only INFO or above by default. |
| env CROS_DISKS_LOG_LEVEL=1 |
| |
| start on starting system-services |
| stop on stopping system-services |
| |
| pre-start script |
| # Set default polling interval on block devices. |
| # This only affects block devices with removable media, which do not |
| # support asynchronous media change/eject events. |
| if [ -f "${BLOCK_DEFAULT_POLL_MSECS_SYSFS_PATH}" ]; then |
| echo "${BLOCK_DEFAULT_POLL_MSECS}" > "${BLOCK_DEFAULT_POLL_MSECS_SYSFS_PATH}" |
| fi |
| |
| # Load the FUSE module, which is a dependency for AVFS. |
| # cros-disks should still run even the FUSE module is failed to load. |
| logger -t "$UPSTART_JOB" "Loading FUSE module" |
| modprobe fuse || logger -t "$UPSTART_JOB" "Failed to load FUSE module" |
| end script |
| |
| post-stop script |
| if [ -f "${BLOCK_DEFAULT_POLL_MSECS_SYSFS_PATH}" ]; then |
| # Disable default polling on block devices. |
| echo 0 > "${BLOCK_DEFAULT_POLL_MSECS_SYSFS_PATH}" |
| fi |
| end script |
| |
| respawn |
| expect fork |
| |
| exec /opt/google/cros-disks/disks --log-level="${CROS_DISKS_LOG_LEVEL}" ${CROS_DISKS_OPTS} |