From: Frank Brehm Date: Fri, 11 Mar 2016 12:24:23 +0000 (+0100) Subject: saving uncommitted changes in /etc prior to emerge run X-Git-Url: https://git.uhu-banane.org/?a=commitdiff_plain;h=c70508372cf4d81727a4b2c5723622780d62fa44;p=config%2Fbruni%2Fetc.git saving uncommitted changes in /etc prior to emerge run --- diff --git a/init.d/lvm b/init.d/lvm index 62ddac41..8478c239 100755 --- a/init.d/lvm +++ b/init.d/lvm @@ -3,10 +3,38 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ +_get_lvm_path() { + local lvm_path= + for lvm_path in /bin/lvm /sbin/lvm ; do + [ -x "$lvm_path" ] && break + done + echo "${lvm_path}" +} + +_need_lvmetad() +{ + local lvm_path="$(_get_lvm_path)" + [ ! -x "${lvm_path}" ] && return 1 + ${lvm_path} dumpconfig global | grep -q 'use_lvmetad=1' +} + depend() { before checkfs fsck after modules device-mapper - need lvmetad sysfs + # We may use lvmetad based on the configuration. If we added lvmetad + # support while lvm2 is running then we aren't dependent on it. For the + # more common case, if its disabled in the config we aren't dependent + # on it. + config /etc/lvm/lvm.conf + local _need= + if service_started; then + _need=$(service_get_value need) + else + if _need_lvmetad; then + _need="${_need} lvmetad" + fi + fi + need sysfs ${_need} } config='global { locking_dir = "/run/lock/lvm" }' @@ -24,9 +52,10 @@ start() { # LVM support for /usr, /home, /opt .... # This should be done *before* checking local # volumes, or they never get checked. - + # NOTE: Add needed modules for LVM or RAID, etc # to /etc/modules.autoload if needed + lvm_path="$(_get_lvm_path)" for lvm_path in /bin/lvm /sbin/lvm ; do [ -x "$lvm_path" ] && break done @@ -55,6 +84,14 @@ start() { fi } +start_post() +{ + # Save if we needed lvmetad + if _need_lvmetad; then + service_set_value need lvmetad + fi +} + stop() { for lvm_path in /bin/lvm /sbin/lvm ; do [ -x "$lvm_path" ] && break @@ -71,7 +108,6 @@ if [ -x /sbin/vgs ] && \ [ -d /proc/lvm -o "`grep device-mapper /proc/misc 2>/dev/null`" ] then einfo "Shutting down the Logical Volume Manager" - VGS=$($lvm_path vgs --config "${config}" -o vg_name --noheadings --nosuffix --rows 2> /dev/null) diff --git a/init.d/lvmetad b/init.d/lvmetad index abeca75f..db0b698e 100755 --- a/init.d/lvmetad +++ b/init.d/lvmetad @@ -11,3 +11,8 @@ start_stop_daemon_args="--pidfile ${pidfile}" depend() { : } + +start_pre() +{ + checkpath --directory /run/lvm || return 1 +}