Changeset View
Changeset View
Standalone View
Standalone View
contrib/openrc/init.d/mtab.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="Update /etc/mtab to match what the kernel knows about" | |||||
depend() | |||||
{ | |||||
after clock | |||||
before localmount | |||||
need root | |||||
keyword -prefix -systemd-nspawn | |||||
} | |||||
start() | |||||
{ | |||||
local rc=0 | |||||
ebegin "Updating /etc/mtab" | |||||
if ! checkpath -W /etc; then | |||||
rc=1 | |||||
elif ! yesno ${mtab_is_file:-no}; then | |||||
[ ! -L /etc/mtab ] && [ -f /etc/mtab ] && | |||||
ewarn "Removing /etc/mtab file" | |||||
einfo "Creating mtab symbolic link" | |||||
ln -snf /proc/self/mounts /etc/mtab | |||||
else | |||||
ewarn "The ${RC_SVCNAME} service will be removed in the future." | |||||
ewarn "Please change the mtab_is_file setting to no and run" | |||||
ewarn "# rc-service mtab restart" | |||||
ewarn "to create the mtab symbolic link." | |||||
[ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link" | |||||
rm -f /etc/mtab | |||||
einfo "Creating mtab file" | |||||
# With / as tmpfs we cannot umount -at tmpfs in localmount as that | |||||
# makes / readonly and dismounts all tmpfs even if in use which is | |||||
# not good. Luckily, umount uses /etc/mtab instead of /proc/mounts | |||||
# which allows this hack to work. | |||||
grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab | |||||
# Remove stale backups | |||||
rm -f /etc/mtab~ /etc/mtab~~ | |||||
fi | |||||
eend $rc "/etc is not writable; unable to create /etc/mtab" | |||||
return 0 | |||||
} |