From: Frank Brehm Date: Mon, 18 Jan 2016 11:24:51 +0000 (+0100) Subject: saving uncommitted changes in /etc prior to emerge run X-Git-Url: https://git.uhu-banane.org/?a=commitdiff_plain;h=58a7b4dadb99b2e31c5a9e311f10180ad9550595;p=config%2Fbruni%2Fetc.git saving uncommitted changes in /etc prior to emerge run --- diff --git a/conf.d/bootmisc b/conf.d/bootmisc index d79706cc..53712097 100644 --- a/conf.d/bootmisc +++ b/conf.d/bootmisc @@ -8,3 +8,8 @@ wipe_tmp="YES" # Write the initial dmesg log into /var/log/dmesg after boot # This may be useful if you need the kernel boot log afterwards log_dmesg="YES" + +# Save the previous dmesg log to dmesc.old +# This may be useful if you need to compare the current boot to the +# previous one. +#previous_dmesg=no diff --git a/conf.d/net-online b/conf.d/net-online new file mode 100644 index 00000000..bf0b09a2 --- /dev/null +++ b/conf.d/net-online @@ -0,0 +1,15 @@ +# The interfaces setting controls which interfaces the net-online +# service considers in deciding whether the network is active. By +# default, it is all ethernet or wireless LAN interfaces. +#interfaces="" + +# This setting controls whether a ping to the default gateway is +# included in the test for network connectivity after all interfaces +# are active. +#ping_default_gateway=no + +# The timeout setting controls how long the net-online service waits +# for the network to be configured. +# The default is 120 seconds. +# if this is set to 0, the wait is infinite. +#timeout=120 diff --git a/conf.d/netmount b/conf.d/netmount index fc19fd48..53717fcd 100644 --- a/conf.d/netmount +++ b/conf.d/netmount @@ -25,11 +25,11 @@ #rc_need="net.eth1 net.eth2" # # If you are using a dynamic network management tool like -# networkmanager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to +# NetworkManager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to # manage the network interfaces with the routes to your netmounts, you # should list that tool. # -#rc_need="networkmanager" +#rc_need="NetworkManager" #rc_need="dhcpcd" #rc_need="wicd" # diff --git a/init.d/bootmisc b/init.d/bootmisc index c8c0cf54..03f89243 100755 --- a/init.d/bootmisc +++ b/init.d/bootmisc @@ -216,6 +216,9 @@ start() case "$RC_SYS" in VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;; *) + if yesno ${previous_dmesg:-no}; then + mv /var/log/dmesg /var/log/dmesg.old + fi dmesg > /var/log/dmesg chmod 640 /var/log/dmesg ;; diff --git a/init.d/net-online b/init.d/net-online new file mode 100755 index 00000000..3ef14813 --- /dev/null +++ b/init.d/net-online @@ -0,0 +1,69 @@ +#!/sbin/openrc-run +# Copyright (C) 2015 William Hubbs +# Released under the 2-clause BSD license. + +description="Delays until the network is online or a specific timeout" + +depend() +{ + after modules + need sysfs + keyword -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver +} + +get_interfaces() +{ + local ifname iftype + for ifname in /sys/class/net/*; do + read iftype < ${ifname}/type + [ "$iftype" = "1" ] && printf "%s " ${ifname##*/} + done +} + +get_default_gateway() +{ + local cmd gateway + if command -v ip > /dev/null 2>&1; then + cmd="ip route show" + else + cmd=route + fi + set -- $($cmd | grep default) + [ "$2" != via ] && gateway="$2" || gateway="$3" + printf "%s" $gateway +} + +start () +{ + local carriers configured dev gateway ifcount infinite interfaces + local rc state timeout x + + ebegin "Checking to see if the network is online" + rc=0 + interfaces=${interfaces:-$(get_interfaces)} + timeout=${timeout:-120} + [ $timeout -eq 0 ] && infinite=true || infinite=false + while $infinite || [ $timeout -gt 0 ]; do + carriers=0 + configured=0 + ifcount=0 + for dev in ${interfaces}; do + : $((ifcount += 1)) + read x < /sys/class/net/$dev/carrier + [ $x -eq 1 ] && : $((carriers += 1)) + read x < /sys/class/net/$dev/operstate + [ "$x" = up ] && : $((configured += 1)) + done + [ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break + sleep 1 + : $((timeout -= 1)) + done + ! $infinite && [ $timeout -eq 0 ] && rc=1 + if [ $rc -eq 0 ] && yesno ${ping_default_gateway:-no}; then + gateway="$(get_default_gateway)" + if [ -n "$gateway" ] && ! ping -c 1 $gateway > /dev/null 2>&1; then + rc=1 + fi + fi + eend $rc "The network is offline" +} diff --git a/init.d/sysfs b/init.d/sysfs index 70eaaa9e..24b781e0 100755 --- a/init.d/sysfs +++ b/init.d/sysfs @@ -61,16 +61,6 @@ mount_misc() fi fi - # set up kernel support for cgroups - if [ -d /sys/fs/cgroup ] && ! mountinfo -q /sys/fs/cgroup; then - if grep -qs cgroup /proc/filesystems; then - ebegin "Mounting cgroup filesystem" - local opts="${sysfs_opts},mode=755,size=${rc_cgroupsize:-10m}" - mount -n -t tmpfs -o ${opts} cgroup_root /sys/fs/cgroup - eend $? - fi - fi - # set up kernel support for fusectl if [ -d /sys/fs/fuse/connections ] \ && ! mountinfo -q /sys/fs/fuse/connections; then @@ -108,6 +98,16 @@ mount_misc() mount_cgroups() { + # set up kernel support for cgroups + if [ -d /sys/fs/cgroup ] && ! mountinfo -q /sys/fs/cgroup; then + if grep -qs cgroup /proc/filesystems; then + ebegin "Mounting cgroup filesystem" + local opts="${sysfs_opts},mode=755,size=${rc_cgroupsize:-10m}" + mount -n -t tmpfs -o ${opts} cgroup_root /sys/fs/cgroup + eend $? + fi + fi + mountinfo -q /sys/fs/cgroup || return 0 if ! mountinfo -q /sys/fs/cgroup/openrc; then