Changeset View
Changeset View
Standalone View
Standalone View
contrib/openrc/init.d/mount-ro.in
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
#!@SBINDIR@/openrc-run | |||||
# Copyright (c) 2007-2015 The OpenRC Authors. | |||||
# See the Authors file at the top-level directory of this distribution and | |||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS | |||||
# | |||||
# This file is part of OpenRC. It is subject to the license terms in | |||||
# the LICENSE file found in the top-level directory of this | |||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE | |||||
# This file may not be copied, modified, propagated, or distributed | |||||
# except according to the terms contained in the LICENSE file. | |||||
description="Re-mount filesytems read-only for a clean reboot." | |||||
depend() | |||||
{ | |||||
after killprocs savecache | |||||
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver | |||||
} | |||||
start() | |||||
{ | |||||
local ret=0 | |||||
# Flush all pending disk writes now | |||||
sync | |||||
ebegin "Remounting remaining filesystems read-only" | |||||
# We need the do_unmount function | |||||
. "$RC_LIBEXECDIR"/sh/rc-mount.sh | |||||
eindent | |||||
# Bug 381783 | |||||
local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g') | |||||
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs= | |||||
m="$m|/bin|/sbin|/lib(32|64)?|/libexec" | |||||
if [ -e "$rc_svcdir"/usr_premounted ]; then | |||||
m="$m|/usr" | |||||
fi | |||||
# RC_NO_UMOUNTS is an env var that can be set by plugins | |||||
local IFS="$IFS:" | |||||
for x in $no_umounts $RC_NO_UMOUNTS; do | |||||
m="$m|$x" | |||||
done | |||||
m="^($m)$" | |||||
fs= | |||||
for x in $net_fs_list $extra_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 | |||||
ret=$? | |||||
eoutdent | |||||
eend $ret | |||||
} |