#!@PREFIX@/sbin/runscript # Copyright (c) 2007-2009 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 -prefix -openvz -vserver -lxc } start() { # Flush all pending disk writes now sync; sync ebegin "Remounting remaining filesystems read-only" # We need the do_unmount function . "$RC_LIBEXECDIR"/sh/rc-mount.sh eindent local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs= m="$m|/bin|/sbin|/lib|/libexec" # 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 $? }