#!@PREFIX@/sbin/runscript # Copyright 2007-2008 Roy Marples # All rights reserved. Released under the 2-clause BSD license. description="Re-mount filesytems read-only for a clean reboot." depend() { need killprocs savecache keyword noprefix noopenvz novserver } start() { # Flush all pending disk writes now sync; sync ebegin "Remounting remaining filesystems read-only" # We need the do_unmount function . "${RC_LIBDIR}"/sh/rc-mount.sh eindent local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs= # RC_NO_UMOUNTS is an env var that can be set by plugins local OIFS=$IFS SIFS=${IFS-y} IFS=$IFS IFS=$IFS: for x in ${no_umounts} ${RC_NO_UMOUNTS}; do m="${m}|${x}" done if [ "${SIFS}" = y ]; then IFS=$OIFS else unset IFS fi m="^(${m})$" fs= for x in ${net_fs_list}; do fs="${fs}${fs:+|}${x}" done [ -n "${fs}" ] && fs="^(${fs})$" do_unmount "umount -r" \ --skip-point-regex "${m}" \ ${fs:+--skip-fstype-regex} ${fs} --nonetdev eoutdent eend $? }