summaryrefslogtreecommitdiff
path: root/source/ap
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap')
-rw-r--r--source/ap/lxc/lxc-slackware.in10
-rwxr-xr-xsource/ap/lxc/lxc.SlackBuild6
-rw-r--r--source/ap/lxc/lxc.url1
-rw-r--r--source/ap/lxc/scripts/README11
-rw-r--r--source/ap/lxc/scripts/rc.6.lxc329
-rw-r--r--source/ap/lxc/scripts/rc.6.orig319
-rw-r--r--source/ap/lxc/scripts/rc.M.lxc416
-rw-r--r--source/ap/lxc/scripts/rc.M.orig407
-rw-r--r--source/ap/lxc/scripts/rc.S.lxc478
-rw-r--r--source/ap/lxc/scripts/rc.S.orig449
-rw-r--r--source/ap/lxc/scripts/rc.inet1.lxc387
-rw-r--r--source/ap/lxc/scripts/rc.inet1.orig376
12 files changed, 1 insertions, 3188 deletions
diff --git a/source/ap/lxc/lxc-slackware.in b/source/ap/lxc/lxc-slackware.in
index 07591cbb..f3853799 100644
--- a/source/ap/lxc/lxc-slackware.in
+++ b/source/ap/lxc/lxc-slackware.in
@@ -131,16 +131,6 @@ none /dev/shm tmpfs defaults 0 0
none /run tmpfs defaults,mode=0755 0 0
EOF
-# Back up the existing init scripts and install the lxc versions:
-( cd $rootfs/etc/rc.d
- cp -a /usr/share/lxc/scripts/slackware/* .
- chmod 755 rc.*.lxc
- for file in rc.*.lxc ; do
- cp -a $(basename $file .lxc) $(basename $file .lxc).orig
- cp -a $file $(basename $file .lxc)
- done
-)
-
# restart rc.inet1 to have routing for the loop device
echo "/etc/rc.d/rc.inet1 restart" >> $rootfs/etc/rc.d/rc.local
diff --git a/source/ap/lxc/lxc.SlackBuild b/source/ap/lxc/lxc.SlackBuild
index d1747952..b7977077 100755
--- a/source/ap/lxc/lxc.SlackBuild
+++ b/source/ap/lxc/lxc.SlackBuild
@@ -125,12 +125,6 @@ rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
cat $CWD/lxc-slackware.in > $PKG/usr/share/lxc/templates/lxc-slackware
chmod 755 $PKG/usr/share/lxc/templates/lxc-slackware
-# Add the modified Slackware startup scripts:
-mkdir -p $PKG/usr/share/lxc/scripts/slackware
-cp -a $CWD/scripts/*.lxc $PKG/usr/share/lxc/scripts/slackware
-chown root:root $PKG/usr/share/lxc/scripts/slackware/*
-chmod 644 $PKG/usr/share/lxc/scripts/slackware/*
-
# Make the default configuration directories and an empty rootfs folder:
mkdir -p $PKG/var/lib/lxc $PKG/etc/lxc $PKG/var/lib/rootfs-lxc $PKG/var/lib/misc
diff --git a/source/ap/lxc/lxc.url b/source/ap/lxc/lxc.url
new file mode 100644
index 00000000..964c3e09
--- /dev/null
+++ b/source/ap/lxc/lxc.url
@@ -0,0 +1 @@
+https://linuxcontainers.org/lxc/downloads/
diff --git a/source/ap/lxc/scripts/README b/source/ap/lxc/scripts/README
deleted file mode 100644
index f7d1f5c7..00000000
--- a/source/ap/lxc/scripts/README
+++ /dev/null
@@ -1,11 +0,0 @@
-These are modified versions of some sysvinit-scripts and network-scripts for
-Slackware for use in a container (although they should also work for a regular
-non-container system as well).
-
-Versions ending in .lxc are the scripts to be used in a container.
-Versions ending in .orig are the scripts from the sysvinit-scripts and
-network-scripts packages that the .lxc scripts are based on.
-
-Any changes made to the original scripts in sysvinit-scripts or network-scripts
-*may* need to be ported to these versions.
-
diff --git a/source/ap/lxc/scripts/rc.6.lxc b/source/ap/lxc/scripts/rc.6.lxc
deleted file mode 100644
index 73923da9..00000000
--- a/source/ap/lxc/scripts/rc.6.lxc
+++ /dev/null
@@ -1,329 +0,0 @@
-#! /bin/sh
-#
-# rc.6 This file is executed by init when it goes into runlevel
-# 0 (halt) or runlevel 6 (reboot). It kills all processes,
-# unmounts file systems and then either halts or reboots.
-#
-# Version: @(#)/etc/rc.d/rc.6 2.47 Sat Jan 13 13:37:26 PST 2001
-#
-# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org>
-# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com>
-#
-
-# Set the path.
-PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
-
-# Set $container variable since this is a modified version of rc.6 with
-# changes for running in an lxc container. A check to see if this variable
-# is set will be used to skip parts of the script that we don't want to run
-# in a container. Thanks to Matteo Bernardini <ponce@slackbuilds.org> and
-# Chris Willing for the initial work making this script lxc compatible.
-container="lxc"
-
-# If there are SystemV init scripts for this runlevel, run them.
-if [ -x /etc/rc.d/rc.sysvinit ]; then
- /etc/rc.d/rc.sysvinit
-fi
-
-# Set linefeed mode to avoid staircase effect.
-/bin/stty onlcr
-
-echo "Running shutdown script $0:"
-
-# Find out how we were called.
-case "$0" in
- *0)
- shutdown_command="halt"
- ;;
- *6)
- shutdown_command=reboot
- ;;
- *)
- echo "$0: call me as \"rc.0\" or \"rc.6\" please!"
- exit 1
- ;;
-esac
-
-# Restart init. This prevents init from hanging on to file handles for removed
-# glibc shared libraries in the case that those were upgraded or reinstalled.
-/sbin/telinit u
-
-# Save the system time to the hardware clock using hwclock --systohc.
-# This will also create or update the timestamps in /etc/adjtime.
-if [ -x /sbin/hwclock -a -z "$container" ]; then
- # Check for a broken motherboard RTC clock (where ioports for rtc are
- # unknown) to prevent hwclock causing a hang:
- if ! grep -q " : rtc" /proc/ioports ; then
- CLOCK_OPT="--directisa"
- fi
- if [ /etc/adjtime -nt /etc/hardwareclock ]; then
- if grep -q "^LOCAL" /etc/adjtime ; then
- echo "Saving system time to the hardware clock (localtime)."
- else
- echo "Saving system time to the hardware clock (UTC)."
- fi
- /sbin/hwclock $CLOCK_OPT --systohc
- elif grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then
- echo "Saving system time to the hardware clock (UTC)."
- if [ ! -r /etc/adjtime ]; then
- echo "Creating system time correction file /etc/adjtime."
- fi
- /sbin/hwclock $CLOCK_OPT --utc --systohc
- else
- echo "Saving system time to the hardware clock (localtime)."
- if [ ! -r /etc/adjtime ]; then
- echo "Creating system time correction file /etc/adjtime."
- fi
- /sbin/hwclock $CLOCK_OPT --localtime --systohc
- fi
-fi
-
-# Run any local shutdown scripts:
-if [ -x /etc/rc.d/rc.local_shutdown ]; then
- /etc/rc.d/rc.local_shutdown stop
-fi
-
-# Stop the Apache web server:
-if [ -x /etc/rc.d/rc.httpd ]; then
- /etc/rc.d/rc.httpd stop
-fi
-
-# Stop the MySQL database:
-if [ -x /etc/rc.d/rc.mysqld -a -r /var/run/mysql/mysql.pid ]; then
- /etc/rc.d/rc.mysqld stop
-fi
-
-# Stop the Samba server:
-if [ -x /etc/rc.d/rc.samba ]; then
- /etc/rc.d/rc.samba stop
-fi
-
-# Shut down the NFS server:
-if [ -x /etc/rc.d/rc.nfsd ]; then
- /etc/rc.d/rc.nfsd stop
-fi
-
-# Shut down the SSH server:
-if [ -x /etc/rc.d/rc.sshd ]; then
- /etc/rc.d/rc.sshd stop
-fi
-
-# Shut down the SASL authentication daemon:
-if [ -x /etc/rc.d/rc.saslauthd ]; then
- /etc/rc.d/rc.saslauthd stop
-fi
-
-# Shut down OpenLDAP:
-if [ -x /etc/rc.d/rc.openldap ]; then
- /etc/rc.d/rc.openldap stop
-fi
-
-# Stop the haveged entropy daemon:
-if [ -x /etc/rc.d/rc.haveged -a -z "$container" ]; then
- /etc/rc.d/rc.haveged stop
-fi
-
-# Stop D-Bus:
-if [ -x /etc/rc.d/rc.messagebus ]; then
- /etc/rc.d/rc.messagebus stop
-fi
-
-# Kill any processes (typically gam) that would otherwise prevent
-# unmounting NFS volumes:
-unset FUSER_DELAY
-for dir in $(/bin/mount | grep 'type nfs ' | sed -e 's|.* on ||g' | cut -d ' ' -f 1) ; do
- echo "Killing processes holding NFS mount $dir open..."
- # Background this to prevent fuser from also blocking shutdown:
- /usr/bin/fuser -k -M -m "$dir" &
- FUSER_DELAY=5
-done
-# If fuser was run, let it have some delay:
-if [ ! -z "$FUSER_DELAY" ]; then
- sleep $FUSER_DELAY
-fi
-
-# Unmount any NFS, SMB, or CIFS filesystems:
-echo "Unmounting remote filesystems:"
-/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g"
-
-# Try to shut down pppd:
-PS="$(ps ax)"
-if echo "$PS" | /bin/grep -q -w pppd ; then
- if [ -x /usr/sbin/ppp-off ]; then
- /usr/sbin/ppp-off
- fi
-fi
-
-# Shut down YP services:
-if [ -x /etc/rc.d/rc.yp ]; then
- if grep -wq stop /etc/rc.d/rc.yp ; then
- /etc/rc.d/rc.yp stop
- fi
-fi
-
-# Bring down the networking system, but first make sure that this
-# isn't a diskless client with the / partition mounted via NFS:
-if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then
- if [ -x /etc/rc.d/rc.inet1 ]; then
- /etc/rc.d/rc.inet1 stop
- fi
-fi
-
-# In case dhcpcd might have been manually started on the command line,
-# look for the .pid file, and shut dhcpcd down if it's found:
-if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then
- /sbin/dhcpcd -k 1> /dev/null 2> /dev/null
- # A little time for /etc/resolv.conf and/or other files to
- # restore themselves.
- sleep 2
-fi
-
-# Shut down PCMCIA devices:
-if [ -x /etc/rc.d/rc.pcmcia -a -z "$container" ]; then
- /etc/rc.d/rc.pcmcia stop
- # The cards might need a little extra time here to deactivate:
- /bin/sleep 5
-fi
-
-# Turn off process accounting:
-if [ -x /sbin/accton -a -r /var/log/pacct ]; then
- /sbin/accton off
-fi
-
-# Terminate acpid before syslog:
-if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid -a -z "$container" ]; then # quit
- /etc/rc.d/rc.acpid stop
-fi
-
-# Stop udev:
-if [ -x /etc/rc.d/rc.udev -a -z "$container" ]; then
- /etc/rc.d/rc.udev force-stop
-fi
-
-# Kill all remaining processes.
-OMITPIDS="$(for p in $(pgrep mdmon); do echo -o $p; done)" # Don't kill mdmon
-if [ ! "$1" = "fast" ]; then
- echo "Sending all processes the SIGTERM signal."
- /sbin/killall5 -15 $OMITPIDS
- /bin/sleep 5
- echo "Sending all processes the SIGKILL signal."
- /sbin/killall5 -9 $OMITPIDS
-fi
-
-# Try to turn off quota.
-if /bin/grep -q quota /etc/fstab ; then
- if [ -x /sbin/quotaoff -a -z "$container" ]; then
- echo "Turning off filesystem quotas."
- /sbin/quotaoff -a
- fi
-fi
-
-# Carry a random seed between reboots.
-echo "Saving random seed from /dev/urandom in /etc/random-seed."
-# Use the pool size from /proc, or 4096 bits:
-if [ -r /proc/sys/kernel/random/poolsize ]; then
- /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(expr $(cat /proc/sys/kernel/random/poolsize) / 8) 2> /dev/null
-else
- /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
-fi
-/bin/chmod 600 /etc/random-seed
-
-# Before unmounting file systems write a reboot or halt record to wtmp.
-$shutdown_command -w
-
-# Turn off swap:
-if [ -z "$container" ]; then
- echo "Turning off swap."
- /sbin/swapoff -a
- /bin/sync
-fi
-
-# Stop cgmanager and cgproxy:
-if [ -x /etc/rc.d/rc.cgmanager -a -z "$container" ]; then
- /etc/rc.d/rc.cgmanager stop
-fi
-
-if [ -z "$container" ]; then
- echo "Unmounting local file systems:"
- /bin/umount -v -a -t no,proc,sysfs,devtmpfs,fuse.gvfsd-fuse,tmpfs
- # JFS needs a sync here or the / partition cannot be remounted read-only.
- # In spite of this, it seems that a JFS root partition will always be checked
- # (and found to be clean) at boot:
- /bin/sync
- echo "Remounting root filesystem read-only:"
- /bin/mount -v -n -o remount,ro /
-fi
-
-# This never hurts:
-/bin/sync
-
-# Close any volumes opened by cryptsetup:
-if [ -f /etc/crypttab -a -x /sbin/cryptsetup ]; then
- cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
- # NOTE: we only support LUKS formatted volumes (except for swap)!
- LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ')
- DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ')
- OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ')
- if /sbin/cryptsetup isLuks $DEV 2>/dev/null ; then
- echo "Locking LUKS crypt volume '${LUKS}':"
- /sbin/cryptsetup luksClose ${LUKS}
- elif echo $OPTS | grep -wq swap ; then
- # If any of the volumes was used as encrypted swap,
- # then run mkswap on the underlying device -
- # in case other Linux installations on this computer should use it:
- echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:"
- /sbin/cryptsetup remove ${LUKS}
- mkswap $DEV
- fi
- done
-fi
-
-# Deactivate LVM volume groups:
-if [ -z "$container" ]; then
- if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
- echo "Deactivating LVM volume groups:"
- /sbin/vgchange -an
- fi
-fi
-
-# This never hurts again (especially since root-on-LVM always fails
-# to deactivate the / logical volume... but at least it was
-# remounted as read-only first)
-/bin/sync
-
-# sleep 3 fixes problems with some hard drives that don't
-# otherwise finish syncing before reboot or poweroff
-/bin/sleep 3
-
-# This is to ensure all processes have completed on SMP machines:
-wait
-
-if [ -x /sbin/genpowerd -a -z "$container" ]; then
- # See if this is a powerfail situation:
- if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then
- # Signal UPS to shut off the inverter:
- /sbin/genpowerd -k
- if [ ! $? = 0 ]; then
- echo
- echo "There was an error signaling the UPS."
- echo "Perhaps you need to edit /etc/genpowerd.conf to configure"
- echo "the serial line and UPS type."
- # Wasting 15 seconds of precious power:
- /bin/sleep 15
- fi
- fi
-fi
-
-if [ "$container" = "lxc" ]; then
- # confirm successful shutdown of the container
- echo "LXC container stopped."
-fi
-
-# Now halt (poweroff with APM or ACPI enabled kernels) or reboot.
-if [ "$shutdown_command" = "reboot" ]; then
- echo "Rebooting."
- /sbin/reboot
-else
- /sbin/poweroff
-fi
-
diff --git a/source/ap/lxc/scripts/rc.6.orig b/source/ap/lxc/scripts/rc.6.orig
deleted file mode 100644
index e3986db8..00000000
--- a/source/ap/lxc/scripts/rc.6.orig
+++ /dev/null
@@ -1,319 +0,0 @@
-#! /bin/sh
-#
-# rc.6 This file is executed by init when it goes into runlevel
-# 0 (halt) or runlevel 6 (reboot). It kills all processes,
-# unmounts file systems and then either halts or reboots.
-#
-# Version: @(#)/etc/rc.d/rc.6 2.47 Sat Jan 13 13:37:26 PST 2001
-#
-# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org>
-# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com>
-#
-
-# Set the path.
-PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
-
-# If there are SystemV init scripts for this runlevel, run them.
-if [ -x /etc/rc.d/rc.sysvinit ]; then
- /etc/rc.d/rc.sysvinit
-fi
-
-# Set linefeed mode to avoid staircase effect.
-/bin/stty onlcr
-
-echo "Running shutdown script $0:"
-
-# Find out how we were called.
-case "$0" in
- *0)
- shutdown_command="halt"
- ;;
- *6)
- shutdown_command=reboot
- ;;
- *)
- echo "$0: call me as \"rc.0\" or \"rc.6\" please!"
- exit 1
- ;;
-esac
-
-# Restart init. This prevents init from hanging on to file handles for removed
-# glibc shared libraries in the case that those were upgraded or reinstalled.
-/sbin/telinit u
-
-# Save the system time to the hardware clock using hwclock --systohc.
-# This will also create or update the timestamps in /etc/adjtime.
-if [ -x /sbin/hwclock ]; then
- # Check for a broken motherboard RTC clock (where ioports for rtc are
- # unknown) to prevent hwclock causing a hang:
- if ! grep -q " : rtc" /proc/ioports ; then
- CLOCK_OPT="--directisa"
- fi
- if [ /etc/adjtime -nt /etc/hardwareclock ]; then
- if grep -q "^LOCAL" /etc/adjtime ; then
- echo "Saving system time to the hardware clock (localtime)."
- else
- echo "Saving system time to the hardware clock (UTC)."
- fi
- /sbin/hwclock $CLOCK_OPT --systohc
- elif grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then
- echo "Saving system time to the hardware clock (UTC)."
- if [ ! -r /etc/adjtime ]; then
- echo "Creating system time correction file /etc/adjtime."
- fi
- /sbin/hwclock $CLOCK_OPT --utc --systohc
- else
- echo "Saving system time to the hardware clock (localtime)."
- if [ ! -r /etc/adjtime ]; then
- echo "Creating system time correction file /etc/adjtime."
- fi
- /sbin/hwclock $CLOCK_OPT --localtime --systohc
- fi
-fi
-
-# Run any local shutdown scripts:
-if [ -x /etc/rc.d/rc.local_shutdown ]; then
- /etc/rc.d/rc.local_shutdown stop
-fi
-
-# Stop the Apache web server:
-if [ -x /etc/rc.d/rc.httpd ]; then
- /etc/rc.d/rc.httpd stop
-fi
-
-# Stop the MySQL database:
-if [ -x /etc/rc.d/rc.mysqld -a -r /var/run/mysql/mysql.pid ]; then
- /etc/rc.d/rc.mysqld stop
-fi
-
-# Stop the Samba server:
-if [ -x /etc/rc.d/rc.samba ]; then
- /etc/rc.d/rc.samba stop
-fi
-
-# Shut down the NFS server:
-if [ -x /etc/rc.d/rc.nfsd ]; then
- /etc/rc.d/rc.nfsd stop
-fi
-
-# Shut down the SSH server:
-if [ -x /etc/rc.d/rc.sshd ]; then
- /etc/rc.d/rc.sshd stop
-fi
-
-# Shut down the SASL authentication daemon:
-if [ -x /etc/rc.d/rc.saslauthd ]; then
- /etc/rc.d/rc.saslauthd stop
-fi
-
-# Shut down OpenLDAP:
-if [ -x /etc/rc.d/rc.openldap ]; then
- /etc/rc.d/rc.openldap stop
-fi
-
-# Stop the haveged entropy daemon:
-if [ -x /etc/rc.d/rc.haveged ]; then
- /etc/rc.d/rc.haveged stop
-fi
-
-# Stop D-Bus:
-if [ -x /etc/rc.d/rc.messagebus ]; then
- /etc/rc.d/rc.messagebus stop
-fi
-
-# Kill any processes (typically gam) that would otherwise prevent
-# unmounting NFS volumes:
-unset FUSER_DELAY
-for dir in $(/bin/mount | grep 'type nfs ' | sed -e 's|.* on ||g' | cut -d ' ' -f 1) ; do
- echo "Killing processes holding NFS mount $dir open..."
- # Background this to prevent fuser from also blocking shutdown:
- /usr/bin/fuser -k -M -m "$dir" &
- FUSER_DELAY=5
-done
-# If fuser was run, let it have some delay:
-if [ ! -z "$FUSER_DELAY" ]; then
- sleep $FUSER_DELAY
-fi
-
-# Unmount any NFS, SMB, or CIFS filesystems:
-echo "Unmounting remote filesystems:"
-/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g"
-
-# Try to shut down pppd:
-PS="$(ps ax)"
-if echo "$PS" | /bin/grep -q -w pppd ; then
- if [ -x /usr/sbin/ppp-off ]; then
- /usr/sbin/ppp-off
- fi
-fi
-
-# Shut down YP services:
-if [ -x /etc/rc.d/rc.yp ]; then
- if grep -wq stop /etc/rc.d/rc.yp ; then
- /etc/rc.d/rc.yp stop
- fi
-fi
-
-# Bring down the networking system, but first make sure that this
-# isn't a diskless client with the / partition mounted via NFS:
-if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then
- if [ -x /etc/rc.d/rc.inet1 ]; then
- /etc/rc.d/rc.inet1 stop
- fi
-fi
-
-# In case dhcpcd might have been manually started on the command line,
-# look for the .pid file, and shut dhcpcd down if it's found:
-if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then
- /sbin/dhcpcd -k 1> /dev/null 2> /dev/null
- # A little time for /etc/resolv.conf and/or other files to
- # restore themselves.
- sleep 2
-fi
-
-# Shut down PCMCIA devices:
-if [ -x /etc/rc.d/rc.pcmcia ]; then
- /etc/rc.d/rc.pcmcia stop
- # The cards might need a little extra time here to deactivate:
- /bin/sleep 5
-fi
-
-# Turn off process accounting:
-if [ -x /sbin/accton -a -r /var/log/pacct ]; then
- /sbin/accton off
-fi
-
-# Terminate acpid before syslog:
-if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit
- /etc/rc.d/rc.acpid stop
-fi
-
-# Stop udev:
-if [ -x /etc/rc.d/rc.udev ]; then
- /etc/rc.d/rc.udev force-stop
-fi
-
-# Kill all remaining processes.
-OMITPIDS="$(for p in $(pgrep mdmon); do echo -o $p; done)" # Don't kill mdmon
-if [ ! "$1" = "fast" ]; then
- echo "Sending all processes the SIGTERM signal."
- /sbin/killall5 -15 $OMITPIDS
- /bin/sleep 5
- echo "Sending all processes the SIGKILL signal."
- /sbin/killall5 -9 $OMITPIDS
-fi
-
-# Try to turn off quota.
-if /bin/grep -q quota /etc/fstab ; then
- if [ -x /sbin/quotaoff ]; then
- echo "Turning off filesystem quotas."
- /sbin/quotaoff -a
- fi
-fi
-
-# Carry a random seed between reboots.
-echo "Saving random seed from /dev/urandom in /etc/random-seed."
-# Use the pool size from /proc, or 4096 bits:
-if [ -r /proc/sys/kernel/random/poolsize ]; then
- /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(expr $(cat /proc/sys/kernel/random/poolsize) / 8) 2> /dev/null
-else
- /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
-fi
-/bin/chmod 600 /etc/random-seed
-
-# Before unmounting file systems write a reboot or halt record to wtmp.
-$shutdown_command -w
-
-# Turn off swap:
-echo "Turning off swap."
-/sbin/swapoff -a
-/bin/sync
-
-# Stop cgmanager and cgproxy:
-if [ -x /etc/rc.d/rc.cgmanager ]; then
- /etc/rc.d/rc.cgmanager stop
-fi
-
-# Umount all tmpfs mounts except /dev/shm and under /run:
-cat /proc/mounts | grep " tmpfs " | grep -v -e " /run " -e " /run/" -e " /dev/shm " | while read mount ; do
- umount --recursive -v $(echo $mount | cut -f 2 -d ' ') 2> /dev/null
-done
-
-# Unmount local file systems:
-echo "Unmounting local file systems:"
-/bin/umount -v -a -t no,proc,sysfs,devtmpfs,fuse.gvfsd-fuse,tmpfs
-
-# JFS needs a sync here or the / partition cannot be remounted read-only.
-# In spite of this, it seems that a JFS root partition will always be checked
-# (and found to be clean) at boot:
-/bin/sync
-
-echo "Remounting root filesystem read-only:"
-/bin/mount -v -n -o remount,ro /
-
-# This never hurts:
-/bin/sync
-
-# Close any volumes opened by cryptsetup:
-if [ -f /etc/crypttab -a -x /sbin/cryptsetup ]; then
- cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
- # NOTE: we only support LUKS formatted volumes (except for swap)!
- LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ')
- DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ')
- OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ')
- if /sbin/cryptsetup isLuks $DEV 2>/dev/null ; then
- echo "Locking LUKS crypt volume '${LUKS}':"
- /sbin/cryptsetup luksClose ${LUKS}
- elif echo $OPTS | grep -wq swap ; then
- # If any of the volumes was used as encrypted swap,
- # then run mkswap on the underlying device -
- # in case other Linux installations on this computer should use it:
- echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:"
- /sbin/cryptsetup remove ${LUKS}
- mkswap $DEV
- fi
- done
-fi
-
-# Deactivate LVM volume groups:
-if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
- echo "Deactivating LVM volume groups:"
- /sbin/vgchange -an
-fi
-
-# This never hurts again (especially since root-on-LVM always fails
-# to deactivate the / logical volume... but at least it was
-# remounted as read-only first)
-/bin/sync
-
-# sleep 3 fixes problems with some hard drives that don't
-# otherwise finish syncing before reboot or poweroff
-/bin/sleep 3
-
-# This is to ensure all processes have completed on SMP machines:
-wait
-
-if [ -x /sbin/genpowerd ]; then
- # See if this is a powerfail situation:
- if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then
- # Signal UPS to shut off the inverter:
- /sbin/genpowerd -k
- if [ ! $? = 0 ]; then
- echo
- echo "There was an error signaling the UPS."
- echo "Perhaps you need to edit /etc/genpowerd.conf to configure"
- echo "the serial line and UPS type."
- # Wasting 15 seconds of precious power:
- /bin/sleep 15
- fi
- fi
-fi
-
-# Now halt (poweroff with APM or ACPI enabled kernels) or reboot.
-if [ "$shutdown_command" = "reboot" ]; then
- echo "Rebooting."
- /sbin/reboot
-else
- /sbin/poweroff
-fi
-
diff --git a/source/ap/lxc/scripts/rc.M.lxc b/source/ap/lxc/scripts/rc.M.lxc
deleted file mode 100644
index 8cab0150..00000000
--- a/source/ap/lxc/scripts/rc.M.lxc
+++ /dev/null
@@ -1,416 +0,0 @@
-#!/bin/sh
-#
-# rc.M This file is executed by init(8) when the system is being
-# initialized for one of the "multi user" run levels (i.e.
-# levels 1 through 6). It usually does mounting of file
-# systems et al.
-#
-# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003
-#
-# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
-# Heavily modified by Patrick Volkerding <volkerdi@slackware.com>
-#
-
-# Tell the viewers what's going to happen.
-echo "Going multiuser..."
-
-# Set $container variable since this is a modified version of rc.M with
-# changes for running in an lxc container. A check to see if this variable
-# is set will be used to skip parts of the script that we don't want to run
-# in a container. Thanks to Matteo Bernardini <ponce@slackbuilds.org> and
-# Chris Willing for the initial work making this script lxc compatible.
-container="lxc"
-
-# Update all the shared library links:
-if [ -x /sbin/ldconfig ]; then
- echo "Updating shared library links: /sbin/ldconfig &"
- /sbin/ldconfig &
-fi
-
-# Call the setterm init script to set screen blanking and power management
-# defaults:
-if [ -x /etc/rc.d/rc.setterm -a -z "$container" ]; then
- /etc/rc.d/rc.setterm
-fi
-
-# Set the hostname.
-if [ -z "$container" ]; then
- if [ -r /etc/HOSTNAME ]; then
- /bin/hostname $(cat /etc/HOSTNAME)
- else
- # fall back on this old default:
- echo "darkstar.example.net" > /etc/HOSTNAME
- /bin/hostname $(cat /etc/HOSTNAME)
- fi
-fi
-
-# Set the permissions on /var/log/dmesg according to whether the kernel
-# permits non-root users to access kernel dmesg information:
-if [ -r /proc/sys/kernel/dmesg_restrict ]; then
- if [ $(cat /proc/sys/kernel/dmesg_restrict) = 1 ]; then
- touch /var/log/dmesg
- chmod 640 /var/log/dmesg
- fi
-else
- touch /var/log/dmesg
- chmod 644 /var/log/dmesg
-fi
-# Save the contents of 'dmesg':
-/bin/dmesg -s 65536 > /var/log/dmesg
-
-# Initialize PCMCIA devices:
-#
-# NOTE: This used to be started near the top of rc.S so that PCMCIA devices
-# could be fsck'ed along with the other drives. This had some unfortunate
-# side effects, however, since root isn't yet read-write, and /var might not
-# even be mounted the .pid files can't be correctly written in /var/run and
-# the pcmcia system can't be correctly shut down. If you want some PCMCIA
-# partition to be mounted at boot (or when the card is inserted) then add
-# the appropriate lines to /etc/pcmcia/scsi.opts.
-#
-# Note that the stuff in /etc/pcmcia/ is only for 2.4.x kernels using
-# 16-bit PCMCIA cards (not 32-bit Cardbus cards!). For example, with a
-# wireless card you might need to set options in /etc/pcmcia OR in
-# /etc/rc.d/rc.wireless.conf, or even in /etc/rc.d/rc.inet1.conf (with
-# extra options if needed for the encryption key, ESSID, etc.)
-#
-# Hopefully this situation will be unified in the future, but for now
-# that's how it is...
-#
-if [ -x /etc/rc.d/rc.pcmcia -a -z "$container" ]; then
- /etc/rc.d/rc.pcmcia start
- # The cards might need a little extra time here to initialize.
- sleep 5
-fi
-
-# Start the system logger.
-if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then
- /etc/rc.d/rc.syslog start
-fi
-
-# Update the X font indexes:
-if [ -x /usr/bin/fc-cache ]; then
- echo "Updating X font indexes: /usr/bin/fc-cache -f &"
- /usr/bin/fc-cache -f &
-fi
-
-# Run rc.udev again. This will start udev if it is not already running
-# (for example, upon return from runlevel 1), otherwise it will trigger it
-# to look for device changes and to generate persistent rules if needed.
-if grep -wq sysfs /proc/mounts && grep -q devtmpfs /proc/filesystems ; then
- if ! grep -wq nohotplug /proc/cmdline ; then
- if [ -x /etc/rc.d/rc.udev -a -z "$container" ]; then
- /etc/rc.d/rc.udev start
- fi
- fi
-fi
-
-# Start the haveged entropy daemon:
-if [ -x /etc/rc.d/rc.haveged -a -z "$container" ]; then
- /etc/rc.d/rc.haveged start
-fi
-
-# Start the rngd entropy daemon:
-if [ -x /etc/rc.d/rc.rngd -a -z "$container" ]; then
- /etc/rc.d/rc.rngd start
-fi
-
-# Initialize the networking hardware.
-if [ -x /etc/rc.d/rc.inet1 ]; then
- /etc/rc.d/rc.inet1
-fi
-
-# Start D-Bus:
-if [ -x /etc/rc.d/rc.messagebus ]; then
- /etc/rc.d/rc.messagebus start
-fi
-
-# Start console-kit-daemon:
-if [ -x /etc/rc.d/rc.consolekit ]; then
- /etc/rc.d/rc.consolekit start
-fi
-
-# Start Bluetooth:
-if [ -x /etc/rc.d/rc.bluetooth ]; then
- /etc/rc.d/rc.bluetooth start
-fi
-
-# Start wicd or networkmanager:
-if [ -x /etc/rc.d/rc.wicd -a -x /usr/sbin/wicd ]; then
- /etc/rc.d/rc.wicd start
-elif [ -x /etc/rc.d/rc.networkmanager ]; then
- /etc/rc.d/rc.networkmanager start
-fi
-
-# Start networking daemons:
-if [ -x /etc/rc.d/rc.inet2 ]; then
- /etc/rc.d/rc.inet2
-fi
-
-# Mount any additional filesystem types that haven't already been mounted:
-mount -a -v 2> /dev/null | grep -v -e "already mounted" -e "ignored" | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep "${dev} " ; done
-
-# Start the Control Script for automounter:
-if [ -x /etc/rc.d/rc.autofs ]; then
- /etc/rc.d/rc.autofs start
-fi
-
-# Start the Network Time Protocol daemon:
-if [ -x /etc/rc.d/rc.ntpd ]; then
- /etc/rc.d/rc.ntpd start
-fi
-
-# Remove stale locks and junk files (must be done after mount -a!)
-/bin/rm -f /var/lock/* /var/spool/uucp/LCK..* /tmp/.X*lock /tmp/.X11-unix/* 2> /dev/null
-
-# Remove stale hunt sockets so the game can start.
-if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then
- echo "Removing your stale hunt sockets from /tmp."
- /bin/rm -f /tmp/hunt*
-fi
-
-# Ensure basic filesystem permissions sanity.
-chmod 755 / 2> /dev/null
-chmod 1777 /tmp /var/tmp
-
-# Start ACPI daemon.
-if [ -x /etc/rc.d/rc.acpid -a -z "$container" ]; then
- /etc/rc.d/rc.acpid start
-fi
-
-# Enable CPU frequency scaling:
-if [ -x /etc/rc.d/rc.cpufreq -a -z "$container" ]; then
- /etc/rc.d/rc.cpufreq start
-fi
-
-# Update any existing icon cache files:
-if find /usr/share/icons -maxdepth 2 2> /dev/null | grep -q icon-theme.cache ; then
- for theme_dir in /usr/share/icons/* ; do
- if [ -r ${theme_dir}/icon-theme.cache ]; then
- echo "Updating icon-theme.cache in ${theme_dir}..."
- /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null &
- fi
- done
- # This would be a large file and probably shouldn't be there.
- if [ -r /usr/share/icons/icon-theme.cache ]; then
- echo "Deleting icon-theme.cache in /usr/share/icons..."
- #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null &
- rm -f /usr/share/icons/icon-theme.cache
- fi
-fi
-
-# Update mime database:
-if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then
- echo "Updating MIME database: /usr/bin/update-mime-database /usr/share/mime &"
- /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null &
-fi
-
-# Start HAL:
-if [ -x /etc/rc.d/rc.hald ]; then
- /etc/rc.d/rc.hald start
-fi
-
-# Start system-wide PulseAudio daemon (not recommended, nor required in
-# order to use PulseAudio -- see the script for details):
-if [ -x /etc/rc.d/rc.pulseaudio ]; then
- /etc/rc.d/rc.pulseaudio start
-fi
-
-# These GTK+/pango files need to be kept up to date for
-# proper input method, pixbuf loaders, and font support.
-if [ -x /usr/bin/update-gtk-immodules ]; then
- echo "Updating gtk.immodules:"
- echo " /usr/bin/update-gtk-immodules &"
- /usr/bin/update-gtk-immodules > /dev/null 2>&1 &
-fi
-if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then
- echo "Updating gdk-pixbuf.loaders:"
- echo " /usr/bin/update-gdk-pixbuf-loaders &"
- HOME=/root /usr/bin/update-gdk-pixbuf-loaders > /dev/null 2>&1 &
-fi
-if [ -x /usr/bin/update-pango-querymodules ]; then
- echo "Updating pango.modules:"
- echo " /usr/bin/update-pango-querymodules &"
- /usr/bin/update-pango-querymodules > /dev/null 2>&1 &
-fi
-if [ -x /usr/bin/glib-compile-schemas ]; then
- echo "Compiling GSettings XML schema files:"
- echo " /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas &"
- /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas >/dev/null 2>&1 &
-fi
-
-# Start dnsmasq, a simple DHCP/DNS server:
-if [ -x /etc/rc.d/rc.dnsmasq ]; then
- /etc/rc.d/rc.dnsmasq start
-fi
-
-# Start snmpd:
-if [ -x /etc/rc.d/rc.snmpd ]; then
- /etc/rc.d/rc.snmpd start
-fi
-
-# Start the print spooling system. This will usually be LPRng (lpd) or CUPS.
-if [ -x /etc/rc.d/rc.cups ]; then
- # Start CUPS:
- /etc/rc.d/rc.cups start
-elif [ -x /etc/rc.d/rc.lprng ]; then
- # Start LPRng (lpd):
- /etc/rc.d/rc.lprng start
-fi
-
-# Start netatalk. (a file/print server for Macs using Appletalk)
-if [ -x /etc/rc.d/rc.atalk ]; then
- /etc/rc.d/rc.atalk start
-fi
-
-# Start smartd, which monitors the status of S.M.A.R.T. compatible
-# hard drives and reports any problems:
-if [ -x /etc/rc.d/rc.smartd -a -z "$container" ]; then
- /etc/rc.d/rc.smartd start
-fi
-
-# Monitor the UPS with genpowerd.
-# To use this, uncomment this section and edit your settings in
-# /etc/genpowerd.conf (serial device, UPS type, etc). For more information,
-# see "man genpowerd" or the extensive documentation in the
-# /usr/doc/genpower-*/ directory.
-# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want
-# support for stopping the UPS's inverter after the machine halts.
-#if [ -x /sbin/genpowerd ]; then
-# echo "Starting genpowerd daemon..."
-# /sbin/genpowerd
-#fi
-
-# Turn on process accounting. To enable process accounting, make sure the
-# option for BSD process accounting is enabled in your kernel, and then
-# create the file /var/log/pacct (touch /var/log/pacct). By default, process
-# accounting is not enabled (since /var/log/pacct does not exist). This is
-# because the log file can get VERY large.
-if [ -x /sbin/accton -a -r /var/log/pacct ]; then
- chmod 640 /var/log/pacct
- /sbin/accton /var/log/pacct
-fi
-
-# Start crond (Dillon's crond):
-if [ -x /etc/rc.d/rc.crond ]; then
- /etc/rc.d/rc.crond start
-fi
-
-# Start atd (manages jobs scheduled with 'at'):
-if [ -x /etc/rc.d/rc.atd ]; then
- /etc/rc.d/rc.atd start
-fi
-
-# Slackware-Mini-Quota-HOWTO:
-# To really activate quotas, you'll need to add 'usrquota' and/or 'grpquota' to
-# the appropriate partitions as listed in /etc/fstab. Here's an example:
-#
-# /dev/hda2 /home ext3 defaults,usrquota 1 1
-#
-# You'll then need to setup initial quota files at the top of the partitions
-# to support quota, like this:
-# touch /home/aquota.user /home/aquota.group
-# chmod 600 /home/aquota.user /home/aquota.group
-#
-# Then, reboot to activate the system.
-# To edit user quotas, use 'edquota'. See 'man edquota'. Also, the
-# official Quota Mini-HOWTO has lots of useful information. That can be found
-# here: /usr/doc/Linux-HOWTOs/Quota
-
-# Check quotas and then turn quota system on:
-if grep -q quota /etc/fstab ; then
- for quotafs in $(awk '/quota/ {print $2}' /etc/fstab) ; do
- /bin/rm -f $quotafs/{a,}quota.{group,user}.new
- done
- if [ -x /sbin/quotacheck ]; then
- echo "Checking filesystem quotas: /sbin/quotacheck -avugm"
- /sbin/quotacheck -avugm
- fi
- if [ -x /sbin/quotaon ]; then
- echo "Activating filesystem quotas: /sbin/quotaon -avug"
- /sbin/quotaon -avug
- fi
-fi
-
-# Start the SASL authentication server. This provides SASL
-# authentication services for sendmail/postfix:
-if [ -x /etc/rc.d/rc.saslauthd ]; then
- /etc/rc.d/rc.saslauthd start
-fi
-
-# Start the mail server. Try the rc.sendmail script first, then try rc.postfix.
-if [ -x /etc/rc.d/rc.sendmail -a -x usr/sbin/makemap ]; then
- /etc/rc.d/rc.sendmail start
-elif [ -x /etc/rc.d/rc.postfix -a -x usr/sbin/postdrop ]; then
- /etc/rc.d/rc.postfix start
-fi
-
-# Load ALSA (sound) defaults:
-if [ -x /etc/rc.d/rc.alsa -a -z "$container" ]; then
- /etc/rc.d/rc.alsa
-fi
-
-# Load a custom screen font if the user has an rc.font script.
-if [ -x /etc/rc.d/rc.font ]; then
- /etc/rc.d/rc.font
-fi
-
-# Load a custom keymap if the user has an rc.keymap script.
-if [ -x /etc/rc.d/rc.keymap ]; then
- /etc/rc.d/rc.keymap
-fi
-
-# Start the MySQL database:
-if [ -x /etc/rc.d/rc.mysqld ]; then
- /etc/rc.d/rc.mysqld start
-fi
-
-# Start Apache web server:
-if [ -x /etc/rc.d/rc.httpd ]; then
- /etc/rc.d/rc.httpd start
-fi
-
-# Start OpenLDAP:
-if [ -x /etc/rc.d/rc.openldap ]; then
- /etc/rc.d/rc.openldap start
-fi
-
-# Start Dovecot:
-if [ -x /etc/rc.d/rc.dovecot ]; then
- /etc/rc.d/rc.dovecot start
-fi
-
-# Start Samba (a file/print server for Win95/NT machines).
-# Samba can be started in /etc/inetd.conf instead.
-if [ -x /etc/rc.d/rc.samba ]; then
- /etc/rc.d/rc.samba start
-fi
-
-# Start the GPM mouse server:
-if [ -x /etc/rc.d/rc.gpm ]; then
- /etc/rc.d/rc.gpm start
-fi
-
-# Start the Icecream scheduler. This needs to run on only one machine that is
-# part of the compile cluster:
-if [ -x /etc/rc.d/rc.icecc-scheduler ]; then
- /etc/rc.d/rc.icecc-scheduler start
-fi
-
-# Start the Icecream daemon. This needs to run on every machine that will be
-# part of the compile cluster (including the machine running the scheduler):
-if [ -x /etc/rc.d/rc.iceccd ]; then
- /etc/rc.d/rc.iceccd start
-fi
-
-# If there are SystemV init scripts for this runlevel, run them.
-if [ -x /etc/rc.d/rc.sysvinit ]; then
- /etc/rc.d/rc.sysvinit
-fi
-
-# Start the local setup procedure.
-if [ -x /etc/rc.d/rc.local ]; then
- /etc/rc.d/rc.local
-fi
-
-# All done.
diff --git a/source/ap/lxc/scripts/rc.M.orig b/source/ap/lxc/scripts/rc.M.orig
deleted file mode 100644
index cfffb8ec..00000000
--- a/source/ap/lxc/scripts/rc.M.orig
+++ /dev/null
@@ -1,407 +0,0 @@
-#!/bin/sh
-#
-# rc.M This file is executed by init(8) when the system is being
-# initialized for one of the "multi user" run levels (i.e.
-# levels 1 through 6). It usually does mounting of file
-# systems et al.
-#
-# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003
-#
-# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
-# Heavily modified by Patrick Volkerding <volkerdi@slackware.com>
-#
-
-# Tell the viewers what's going to happen.
-echo "Going multiuser..."
-
-# Update all the shared library links:
-if [ -x /sbin/ldconfig ]; then
- echo "Updating shared library links: /sbin/ldconfig &"
- /sbin/ldconfig &
-fi
-
-# Call the setterm init script to set screen blanking and power management
-# defaults:
-if [ -x /etc/rc.d/rc.setterm ]; then
- /etc/rc.d/rc.setterm
-fi
-
-# Set the hostname.
-if [ -r /etc/HOSTNAME ]; then
- /bin/hostname $(cat /etc/HOSTNAME)
-else
- # fall back on this old default:
- echo "darkstar.example.net" > /etc/HOSTNAME
- /bin/hostname $(cat /etc/HOSTNAME)
-fi
-
-# Set the permissions on /var/log/dmesg according to whether the kernel
-# permits non-root users to access kernel dmesg information:
-if [ -r /proc/sys/kernel/dmesg_restrict ]; then
- if [ $(cat /proc/sys/kernel/dmesg_restrict) = 1 ]; then
- touch /var/log/dmesg
- chmod 640 /var/log/dmesg
- fi
-else
- touch /var/log/dmesg
- chmod 644 /var/log/dmesg
-fi
-# Save the contents of 'dmesg':
-/bin/dmesg -s 65536 > /var/log/dmesg
-
-# Initialize PCMCIA devices:
-#
-# NOTE: This used to be started near the top of rc.S so that PCMCIA devices
-# could be fsck'ed along with the other drives. This had some unfortunate
-# side effects, however, since root isn't yet read-write, and /var might not
-# even be mounted the .pid files can't be correctly written in /var/run and
-# the pcmcia system can't be correctly shut down. If you want some PCMCIA
-# partition to be mounted at boot (or when the card is inserted) then add
-# the appropriate lines to /etc/pcmcia/scsi.opts.
-#
-# Note that the stuff in /etc/pcmcia/ is only for 2.4.x kernels using
-# 16-bit PCMCIA cards (not 32-bit Cardbus cards!). For example, with a
-# wireless card you might need to set options in /etc/pcmcia OR in
-# /etc/rc.d/rc.wireless.conf, or even in /etc/rc.d/rc.inet1.conf (with
-# extra options if needed for the encryption key, ESSID, etc.)
-#
-# Hopefully this situation will be unified in the future, but for now
-# that's how it is...
-#
-if [ -x /etc/rc.d/rc.pcmcia ]; then
- /etc/rc.d/rc.pcmcia start
- # The cards might need a little extra time here to initialize.
- sleep 5
-fi
-
-# Start the system logger.
-if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then
- /etc/rc.d/rc.syslog start
-fi
-
-# Update the X font indexes:
-if [ -x /usr/bin/fc-cache ]; then
- echo "Updating X font indexes: /usr/bin/fc-cache -f &"
- /usr/bin/fc-cache -f &
-fi
-
-# Run rc.udev again. This will start udev if it is not already running
-# (for example, upon return from runlevel 1), otherwise it will trigger it
-# to look for device changes and to generate persistent rules if needed.
-if grep -wq sysfs /proc/mounts && grep -q devtmpfs /proc/filesystems ; then
- if ! grep -wq nohotplug /proc/cmdline ; then
- if [ -x /etc/rc.d/rc.udev ]; then
- /etc/rc.d/rc.udev start
- fi
- fi
-fi
-
-# Start the haveged entropy daemon:
-if [ -x /etc/rc.d/rc.haveged ]; then
- /etc/rc.d/rc.haveged start
-fi
-
-# Start the rngd entropy daemon:
-if [ -x /etc/rc.d/rc.rngd ]; then
- /etc/rc.d/rc.rngd start
-fi
-
-# Initialize the networking hardware.
-if [ -x /etc/rc.d/rc.inet1 ]; then
- /etc/rc.d/rc.inet1
-fi
-
-# Start D-Bus:
-if [ -x /etc/rc.d/rc.messagebus ]; then
- /etc/rc.d/rc.messagebus start
-fi
-
-# Start console-kit-daemon:
-if [ -x /etc/rc.d/rc.consolekit ]; then
- /etc/rc.d/rc.consolekit start
-fi
-
-# Start Bluetooth:
-if [ -x /etc/rc.d/rc.bluetooth ]; then
- /etc/rc.d/rc.bluetooth start
-fi
-
-# Start wicd or networkmanager:
-if [ -x /etc/rc.d/rc.wicd -a -x /usr/sbin/wicd ]; then
- /etc/rc.d/rc.wicd start
-elif [ -x /etc/rc.d/rc.networkmanager ]; then
- /etc/rc.d/rc.networkmanager start
-fi
-
-# Start networking daemons:
-if [ -x /etc/rc.d/rc.inet2 ]; then
- /etc/rc.d/rc.inet2
-fi
-
-# Mount any additional filesystem types that haven't already been mounted:
-mount -a -v 2> /dev/null | grep -v -e "already mounted" -e "ignored" | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep "${dev} " ; done
-
-# Start the Control Script for automounter:
-if [ -x /etc/rc.d/rc.autofs ]; then
- /etc/rc.d/rc.autofs start
-fi
-
-# Start the Network Time Protocol daemon:
-if [ -x /etc/rc.d/rc.ntpd ]; then
- /etc/rc.d/rc.ntpd start
-fi
-
-# Remove stale locks and junk files (must be done after mount -a!)
-/bin/rm -f /var/lock/* /var/spool/uucp/LCK..* /tmp/.X*lock /tmp/.X11-unix/* 2> /dev/null
-
-# Remove stale hunt sockets so the game can start.
-if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then
- echo "Removing your stale hunt sockets from /tmp."
- /bin/rm -f /tmp/hunt*
-fi
-
-# Ensure basic filesystem permissions sanity.
-chmod 755 / 2> /dev/null
-chmod 1777 /tmp /var/tmp
-
-# Start ACPI daemon.
-if [ -x /etc/rc.d/rc.acpid ]; then
- /etc/rc.d/rc.acpid start
-fi
-
-# Enable CPU frequency scaling:
-if [ -x /etc/rc.d/rc.cpufreq ]; then
- /etc/rc.d/rc.cpufreq start
-fi
-
-# Update any existing icon cache files:
-if find /usr/share/icons -maxdepth 2 2> /dev/null | grep -q icon-theme.cache ; then
- for theme_dir in /usr/share/icons/* ; do
- if [ -r ${theme_dir}/icon-theme.cache ]; then
- echo "Updating icon-theme.cache in ${theme_dir}..."
- /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null &
- fi
- done
- # This would be a large file and probably shouldn't be there.
- if [ -r /usr/share/icons/icon-theme.cache ]; then
- echo "Deleting icon-theme.cache in /usr/share/icons..."
- #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null &
- rm -f /usr/share/icons/icon-theme.cache
- fi
-fi
-
-# Update mime database:
-if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then
- echo "Updating MIME database: /usr/bin/update-mime-database /usr/share/mime &"
- /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null &
-fi
-
-# Start HAL:
-if [ -x /etc/rc.d/rc.hald ]; then
- /etc/rc.d/rc.hald start
-fi
-
-# Start system-wide PulseAudio daemon (not recommended, nor required in
-# order to use PulseAudio -- see the script for details):
-if [ -x /etc/rc.d/rc.pulseaudio ]; then
- /etc/rc.d/rc.pulseaudio start
-fi
-
-# These GTK+/pango files need to be kept up to date for
-# proper input method, pixbuf loaders, and font support.
-if [ -x /usr/bin/update-gtk-immodules ]; then
- echo "Updating gtk.immodules:"
- echo " /usr/bin/update-gtk-immodules &"
- /usr/bin/update-gtk-immodules > /dev/null 2>&1 &
-fi
-if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then
- echo "Updating gdk-pixbuf.loaders:"
- echo " /usr/bin/update-gdk-pixbuf-loaders &"
- HOME=/root /usr/bin/update-gdk-pixbuf-loaders > /dev/null 2>&1 &
-fi
-if [ -x /usr/bin/update-pango-querymodules ]; then
- echo "Updating pango.modules:"
- echo " /usr/bin/update-pango-querymodules &"
- /usr/bin/update-pango-querymodules > /dev/null 2>&1 &
-fi
-if [ -x /usr/bin/glib-compile-schemas ]; then
- echo "Compiling GSettings XML schema files:"
- echo " /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas &"
- /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas >/dev/null 2>&1 &
-fi
-
-# Start dnsmasq, a simple DHCP/DNS server:
-if [ -x /etc/rc.d/rc.dnsmasq ]; then
- /etc/rc.d/rc.dnsmasq start
-fi
-
-# Start snmpd:
-if [ -x /etc/rc.d/rc.snmpd ]; then
- /etc/rc.d/rc.snmpd start
-fi
-
-# Start the print spooling system. This will usually be LPRng (lpd) or CUPS.
-if [ -x /etc/rc.d/rc.cups ]; then
- # Start CUPS:
- /etc/rc.d/rc.cups start
-elif [ -x /etc/rc.d/rc.lprng ]; then
- # Start LPRng (lpd):
- /etc/rc.d/rc.lprng start
-fi
-
-# Start netatalk. (a file/print server for Macs using Appletalk)
-if [ -x /etc/rc.d/rc.atalk ]; then
- /etc/rc.d/rc.atalk start
-fi
-
-# Start smartd, which monitors the status of S.M.A.R.T. compatible
-# hard drives and reports any problems:
-if [ -x /etc/rc.d/rc.smartd ]; then
- /etc/rc.d/rc.smartd start
-fi
-
-# Monitor the UPS with genpowerd.
-# To use this, uncomment this section and edit your settings in
-# /etc/genpowerd.conf (serial device, UPS type, etc). For more information,
-# see "man genpowerd" or the extensive documentation in the
-# /usr/doc/genpower-*/ directory.
-# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want
-# support for stopping the UPS's inverter after the machine halts.
-#if [ -x /sbin/genpowerd ]; then
-# echo "Starting genpowerd daemon..."
-# /sbin/genpowerd
-#fi
-
-# Turn on process accounting. To enable process accounting, make sure the
-# option for BSD process accounting is enabled in your kernel, and then
-# create the file /var/log/pacct (touch /var/log/pacct). By default, process
-# accounting is not enabled (since /var/log/pacct does not exist). This is
-# because the log file can get VERY large.
-if [ -x /sbin/accton -a -r /var/log/pacct ]; then
- chmod 640 /var/log/pacct
- /sbin/accton /var/log/pacct
-fi
-
-# Start crond (Dillon's crond):
-if [ -x /etc/rc.d/rc.crond ]; then
- /etc/rc.d/rc.crond start
-fi
-
-# Start atd (manages jobs scheduled with 'at'):
-if [ -x /etc/rc.d/rc.atd ]; then
- /etc/rc.d/rc.atd start
-fi
-
-# Slackware-Mini-Quota-HOWTO:
-# To really activate quotas, you'll need to add 'usrquota' and/or 'grpquota' to
-# the appropriate partitions as listed in /etc/fstab. Here's an example:
-#
-# /dev/hda2 /home ext3 defaults,usrquota 1 1
-#
-# You'll then need to setup initial quota files at the top of the partitions
-# to support quota, like this:
-# touch /home/aquota.user /home/aquota.group
-# chmod 600 /home/aquota.user /home/aquota.group
-#
-# Then, reboot to activate the system.
-# To edit user quotas, use 'edquota'. See 'man edquota'. Also, the
-# official Quota Mini-HOWTO has lots of useful information. That can be found
-# here: /usr/doc/Linux-HOWTOs/Quota
-
-# Check quotas and then turn quota system on:
-if grep -q quota /etc/fstab ; then
- for quotafs in $(awk '/quota/ {print $2}' /etc/fstab) ; do
- /bin/rm -f $quotafs/{a,}quota.{group,user}.new
- done
- if [ -x /sbin/quotacheck ]; then
- echo "Checking filesystem quotas: /sbin/quotacheck -avugm"
- /sbin/quotacheck -avugm
- fi
- if [ -x /sbin/quotaon ]; then
- echo "Activating filesystem quotas: /sbin/quotaon -avug"
- /sbin/quotaon -avug
- fi
-fi
-
-# Start the SASL authentication server. This provides SASL
-# authentication services for sendmail/postfix:
-if [ -x /etc/rc.d/rc.saslauthd ]; then
- /etc/rc.d/rc.saslauthd start
-fi
-
-# Start the mail server. Try the rc.sendmail script first, then try rc.postfix.
-if [ -x /etc/rc.d/rc.sendmail -a -x usr/sbin/makemap ]; then
- /etc/rc.d/rc.sendmail start
-elif [ -x /etc/rc.d/rc.postfix -a -x usr/sbin/postdrop ]; then
- /etc/rc.d/rc.postfix start
-fi
-
-# Load ALSA (sound) defaults:
-if [ -x /etc/rc.d/rc.alsa ]; then
- /etc/rc.d/rc.alsa
-fi
-
-# Load a custom screen font if the user has an rc.font script.
-if [ -x /etc/rc.d/rc.font ]; then
- /etc/rc.d/rc.font
-fi
-
-# Load a custom keymap if the user has an rc.keymap script.
-if [ -x /etc/rc.d/rc.keymap ]; then
- /etc/rc.d/rc.keymap
-fi
-
-# Start the MySQL database:
-if [ -x /etc/rc.d/rc.mysqld ]; then
- /etc/rc.d/rc.mysqld start
-fi
-
-# Start Apache web server:
-if [ -x /etc/rc.d/rc.httpd ]; then
- /etc/rc.d/rc.httpd start
-fi
-
-# Start OpenLDAP:
-if [ -x /etc/rc.d/rc.openldap ]; then
- /etc/rc.d/rc.openldap start
-fi
-
-# Start Dovecot:
-if [ -x /etc/rc.d/rc.dovecot ]; then
- /etc/rc.d/rc.dovecot start
-fi
-
-# Start Samba (a file/print server for Win95/NT machines).
-# Samba can be started in /etc/inetd.conf instead.
-if [ -x /etc/rc.d/rc.samba ]; then
- /etc/rc.d/rc.samba start
-fi
-
-# Start the GPM mouse server:
-if [ -x /etc/rc.d/rc.gpm ]; then
- /etc/rc.d/rc.gpm start
-fi
-
-# Start the Icecream scheduler. This needs to run on only one machine that is
-# part of the compile cluster:
-if [ -x /etc/rc.d/rc.icecc-scheduler ]; then
- /etc/rc.d/rc.icecc-scheduler start
-fi
-
-# Start the Icecream daemon. This needs to run on every machine that will be
-# part of the compile cluster (including the machine running the scheduler):
-if [ -x /etc/rc.d/rc.iceccd ]; then
- /etc/rc.d/rc.iceccd start
-fi
-
-# If there are SystemV init scripts for this runlevel, run them.
-if [ -x /etc/rc.d/rc.sysvinit ]; then
- /etc/rc.d/rc.sysvinit
-fi
-
-# Start the local setup procedure.
-if [ -x /etc/rc.d/rc.local ]; then
- /etc/rc.d/rc.local
-fi
-
-# All done.
diff --git a/source/ap/lxc/scripts/rc.S.lxc b/source/ap/lxc/scripts/rc.S.lxc
deleted file mode 100644
index 6732184a..00000000
--- a/source/ap/lxc/scripts/rc.S.lxc
+++ /dev/null
@@ -1,478 +0,0 @@
-#!/bin/sh
-#
-# /etc/rc.d/rc.S: System initialization script.
-#
-# Mostly written by: Patrick J. Volkerding, <volkerdi@slackware.com>
-#
-
-# Set $container variable since this is a modified version of rc.S with
-# changes for running in an lxc container. A check to see if this variable
-# is set will be used to skip parts of the script that we don't want to run
-# in a container. Thanks to Matteo Bernardini <ponce@slackbuilds.org> and
-# Chris Willing for the initial work making this script lxc compatible.
-container="lxc"
-
-PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
-
-# Try to mount /proc:
-if [ -z "$container" ]; then
- /sbin/mount -v proc /proc -n -t proc 2> /dev/null
-fi
-
-# Mount sysfs next, if the kernel supports it:
-if [ -d /sys -a -z "$container" ]; then
- if grep -wq sysfs /proc/filesystems ; then
- if ! grep -wq sysfs /proc/mounts ; then
- /sbin/mount -v sysfs /sys -n -t sysfs
- fi
- fi
-fi
-
-# If /run exists, mount a tmpfs on it (unless the
-# initrd has already done so):
-if [ -d /run -a -z "$container" ]; then
- if ! grep -wq "tmpfs /run tmpfs" /proc/mounts ; then
- /sbin/mount -v -n -t tmpfs tmpfs /run -o mode=0755,size=32M,nodev,nosuid,noexec
- fi
-fi
-
-# Load the loop device kernel module:
-if [ -x /etc/rc.d/rc.loop -a -z "$container" ]; then
- /etc/rc.d/rc.loop start
-fi
-
-# Initialize udev to manage /dev entries and hotplugging.
-# You may turn off udev by making the /etc/rc.d/rc.udev file non-executable
-# or giving the "nohotplug" option at boot, but realize that if you turn off
-# udev that you will have to load all the kernel modules that you need
-# yourself (possibly in /etc/rc.d/rc.modules.local), and make any additional
-# device nodes that you need in the /dev directory. Even USB and IEEE1394
-# devices will need to have the modules loaded by hand if udev is not used.
-# So use it. :-)
-if grep -wq sysfs /proc/mounts && grep -q devtmpfs /proc/filesystems ; then
- if ! grep -wq nohotplug /proc/cmdline ; then
- if [ -x /etc/rc.d/rc.udev -a -z "$container" ]; then
- /etc/rc.d/rc.udev start
- fi
- fi
-fi
-
-# Mount Control Groups filesystem interface:
-if [ -z "$container" ]; then
- if grep -wq cgroup /proc/filesystems ; then
- if [ -d /sys/fs/cgroup ]; then
- # See linux-*/Documentation/cgroups/cgroups.txt (section 1.6)
- # Check if we have some tools to autodetect the available cgroup controllers
- if [ -x /bin/cut -a -x /bin/tail ]; then
- # Mount a tmpfs as the cgroup filesystem root
- mount -t tmpfs -o mode=0755 cgroup_root /sys/fs/cgroup
- # Autodetect available controllers and mount them in subfolders
- controllers="$(/bin/cut -f 1 /proc/cgroups | /bin/tail -n +2)"
- for i in $controllers; do
- mkdir /sys/fs/cgroup/$i
- mount -t cgroup -o $i $i /sys/fs/cgroup/$i
- done
- unset i controllers
- else
- # We can't use autodetection so fall back mounting them all together
- mount -t cgroup cgroup /sys/fs/cgroup
- fi
- else
- mkdir -p /dev/cgroup
- mount -t cgroup cgroup /dev/cgroup
- fi
- fi
-fi
-
-# Initialize the Logical Volume Manager.
-# This won't start unless we find /etc/lvmtab (LVM1) or
-# /etc/lvm/backup/ (LVM2). This is created by /sbin/vgscan, so to
-# use LVM you must run /sbin/vgscan yourself the first time (and
-# create some VGs and LVs).
-if [ -z "$container" ]; then
- # Create LVM lock/run directories:
- mkdir -p -m 0700 /run/lvm /run/lock /run/lock/lvm
- if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
- echo "Initializing LVM (Logical Volume Manager):"
- # Check for device-mapper support.
- if ! grep -wq device-mapper /proc/devices ; then
- # Try to load a device-mapper kernel module:
- /sbin/modprobe -q dm-mod
- fi
- # Scan for new volume groups:
- /sbin/vgscan --mknodes --ignorelockingfailure 2> /dev/null
- if [ $? = 0 ]; then
- # Make volume groups available to the kernel.
- # This should also make logical volumes available.
- /sbin/vgchange -ay --ignorelockingfailure
- fi
- fi
-fi
-
-# Open any volumes created by cryptsetup.
-#
-# Some notes on /etc/crypttab in Slackware:
-# Only LUKS formatted volumes are supported (except for swap)
-# crypttab follows the following format:
-# <luks_name> <device> <password> <options>
-#
-# <luks_name>: This is the name of your LUKS volume.
-# For example: crypt-home
-#
-# <device>: This is the device containing your LUKS volume.
-# For example: /dev/sda2
-#
-# <password>: This is either the volume password in plain text, or the name of
-# a key file. Use 'none' to interactively enter password on boot.
-#
-# <options>: Comma-separated list of options. Note that there must be a
-# password field for any options to be picked up (use a password of 'none' to
-# get a password prompt at boot). The following options are supported:
-#
-# discard -- this will cause --allow-discards to be passed to the cryptsetup
-# program while opening the LUKS volume.
-#
-# ro -- this will cause --readonly to be passed to the cryptsetup program while
-# opening the LUKS volume.
-#
-# swap -- this option cannot be used with other options. The device given will
-# be formatted as a new encrypted volume with a random key on boot, and used as
-# swap.
-#
-if [ -f /etc/crypttab -a -x /sbin/cryptsetup -a -z "$container" ]; then
- # First, check for device-mapper support.
- if ! grep -wq device-mapper /proc/devices ; then
- # If device-mapper exists as a module, try to load it.
- # Try to load a device-mapper kernel module:
- /sbin/modprobe -q dm-mod
- fi
- # NOTE: we only support LUKS formatted volumes (except for swap)!
- cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
- eval LUKSARRAY=( $line )
- LUKS="${LUKSARRAY[0]}"
- DEV="${LUKSARRAY[1]}"
- PASS="${LUKSARRAY[2]}"
- OPTS="${LUKSARRAY[3]}"
- LUKSOPTS=""
- if echo $OPTS | grep -wq ro ; then LUKSOPTS="${LUKSOPTS} --readonly" ; fi
- if echo $OPTS | grep -wq discard ; then LUKSOPTS="${LUKSOPTS} --allow-discards" ; fi
- # Skip LUKS volumes that were already unlocked (in the initrd):
- /sbin/cryptsetup status $LUKS 2>/dev/null | head -n 1 | grep -q "is active" && continue
- if /sbin/cryptsetup isLuks $DEV 2>/dev/null ; then
- if [ -z "${LUKSOPTS}" ]; then
- echo "Unlocking LUKS encrypted volume '${LUKS}' on device '$DEV':"
- else
- echo "Unlocking LUKS encrypted volume '${LUKS}' on device '$DEV' with options '${LUKSOPTS}':"
- fi
- if [ -n "${PASS}" -a "${PASS}" != "none" ]; then
- if [ -f "${PASS}" ]; then
- # A password was given a key-file filename
- /sbin/cryptsetup ${LUKSOPTS} --key-file=${PASS} luksOpen $DEV $LUKS
- else
- # A password was provided in plain text
- echo "${PASS}" | /sbin/cryptsetup ${LUKSOPTS} luksOpen $DEV $LUKS
- fi
- else
- # No password was given, or a password of 'none' was given
- /sbin/cryptsetup ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1
- fi
- elif echo $OPTS | grep -wq swap ; then
- # If any of the volumes is to be used as encrypted swap,
- # then encrypt it using a random key and run mkswap:
- echo "Creating encrypted swap volume '${LUKS}' on device '$DEV':"
- /sbin/cryptsetup --cipher=aes --key-file=/dev/urandom --key-size=256 create $LUKS $DEV
- mkswap /dev/mapper/$LUKS
- fi
- done
-fi
-
-# Enable swapping:
-if [ -z "$container" ]; then
- /sbin/swapon -a 2> /dev/null
-fi
-
-# Set the tick and frequency for the system clock.
-# Default values are: TICK=10000 and FREQ=0
-if [ -z "$container" ]; then
- TICK=10000
- FREQ=0
- # If there's a /etc/default/adjtimex config file, source it to override
- # the default TICK and FREQ:
- if [ -r /etc/default/adjtimex ]; then
- . /etc/default/adjtimex
- fi
- if /sbin/adjtimex --tick $TICK --frequency $FREQ; then
- echo "Setting the system clock rate: /sbin/adjtimex --tick $TICK --frequency $FREQ"
- else
- echo "Failed to set system clock with adjtimex, possibly invalid parameters? (TICK=$TICK FREQ=$FREQ)"
- fi
-fi
-
-# Set the system time from the hardware clock using hwclock --hctosys.
-if [ -x /sbin/hwclock -a -z "$container" ]; then
- # Check for a broken motherboard RTC clock (where ioports for rtc are
- # unknown) to prevent hwclock causing a hang:
- if ! grep -q " : rtc" /proc/ioports ; then
- CLOCK_OPT="--directisa"
- fi
- if [ /etc/adjtime -nt /etc/hardwareclock ]; then
- if grep -q "^LOCAL" /etc/adjtime ; then
- echo -n "Setting system time from the hardware clock (localtime): "
- else
- echo -n "Setting system time from the hardware clock (UTC): "
- fi
- /sbin/hwclock $CLOCK_OPT --hctosys
- elif grep -wq "^localtime" /etc/hardwareclock 2> /dev/null ; then
- echo -n "Setting system time from the hardware clock (localtime): "
- /sbin/hwclock $CLOCK_OPT --localtime --hctosys
- else
- echo -n "Setting system time from the hardware clock (UTC): "
- /sbin/hwclock $CLOCK_OPT --utc --hctosys
- fi
- date
-fi
-
-# Test to see if the root partition is read-only, like it ought to be.
-if [ -z "$container" ]; then
- READWRITE=no
- if touch /fsrwtestfile 2>/dev/null; then
- rm -f /fsrwtestfile
- READWRITE=yes
- else
- echo "Testing root filesystem status: read-only filesystem"
- fi
-fi
-
-# See if a forced filesystem check was requested at shutdown:
-if [ -r /etc/forcefsck -a -z "$container" ]; then
- FORCEFSCK="-f"
-fi
-
-# Check the root filesystem:
-if [ -z "$container" ]; then
- # If we're using F2FS for the root filesystem, don't check it as it doesn't
- # allow checking a read-only filesystem:
- if grep -q ' / f2fs ' /proc/mounts ; then
- echo "Remounting root device with read-write enabled."
- /sbin/mount -w -v -n -o remount /
- elif [ ! $READWRITE = yes ]; then
- RETVAL=0
- if [ ! -r /etc/fastboot ]; then
- echo "Checking root filesystem:"
- /sbin/fsck $FORCEFSCK -C -a /
- RETVAL=$?
- fi
- # An error code of 2 or higher will require a reboot.
- if [ $RETVAL -ge 2 ]; then
- # An error code equal to or greater than 4 means that some errors
- # could not be corrected. This requires manual attention, so we
- # offer a chance to try to fix the problem in single-user mode:
- if [ $RETVAL -ge 4 ]; then
- echo
- echo "***********************************************************"
- echo "*** An error occurred during the root filesystem check. ***"
- echo "*** You will now be given a chance to log into the ***"
- echo "*** system in single-user mode to fix the problem. ***"
- echo "*** ***"
- echo "*** If you are using the ext2 filesystem, running ***"
- echo "*** 'e2fsck -v -y <partition>' might help. ***"
- echo "***********************************************************"
- echo
- echo "Once you exit the single-user shell, the system will reboot."
- echo
- PS1="(Repair filesystem) \#"; export PS1
- sulogin
- else # With an error code of 2 or 3, reboot the machine automatically:
- echo
- echo "***********************************"
- echo "*** The filesystem was changed. ***"
- echo "*** The system will now reboot. ***"
- echo "***********************************"
- echo
- fi
- echo "Unmounting file systems."
- /sbin/umount -a -r
- /sbin/mount -n -o remount,ro /
- echo "Rebooting system."
- reboot -f
- fi
- # Remount the root filesystem in read-write mode
- echo "Remounting root device with read-write enabled."
- /sbin/mount -w -v -n -o remount /
- if [ $? -gt 0 ] ; then
- echo "FATAL: Attempt to remount root device as read-write failed! This is going to"
- echo "cause serious problems."
- fi
- else
- echo "Testing root filesystem status: read-write filesystem"
- echo
- echo "ERROR: Root partition has already been mounted read-write. Cannot check!"
- echo
- echo "For filesystem checking to work properly, your system must initially mount"
- echo "the root partition as read only. If you're booting with LILO, add a line:"
- echo
- echo " read-only"
- echo
- echo "to the Linux section in your /etc/lilo.conf and type 'lilo' to reinstall it."
- fi # Done checking root filesystem
-fi
-
-# If /etc/mtab is a symlink (probably to /proc/mounts) then we don't want to mess with it.
-if [ ! -L /etc/mtab -o ! -r /etc/mtab ]; then
- # /etc/mtab is a file (or doesn't exist), so we'll handle it the old way:
- # Any /etc/mtab that exists here is old, so we start with a new one:
- /bin/rm -f /etc/mtab{,~,.tmp} && /bin/touch /etc/mtab
- if [ -z "$container" ]; then
- # Add /, /proc, /sys, and /dev/shm mounts to /etc/mtab:
- /sbin/mount -f -w /
- if [ -d /proc/sys ]; then
- /sbin/mount -f -t proc proc /proc
- fi
- if [ -d /sys/bus ]; then
- /sbin/mount -f -t sysfs sysfs /sys
- fi
- if grep -q '^[^ ]\+ /dev/shm ' /proc/mounts 2> /dev/null ; then
- /sbin/mount -f -t tmpfs tmpfs /dev/shm
- fi
- fi
-fi
-
-# Configure ISA Plug-and-Play devices:
-if [ -r /etc/isapnp.conf -a -z "$container" ]; then
- if [ -x /sbin/isapnp ]; then
- /sbin/isapnp /etc/isapnp.conf
- fi
-fi
-
-# Run the kernel module script. This updates the module dependencies and
-# also supports manually loading kernel modules through rc.modules.local.
-if [ -x /etc/rc.d/rc.modules -a -z "$container" ]; then
- /etc/rc.d/rc.modules
-fi
-
-# Configure kernel parameters:
-if [ -x /sbin/sysctl -a -r /etc/sysctl.conf -a -z "$container" ]; then
- echo "Configuring kernel parameters: /sbin/sysctl -e --system"
- /sbin/sysctl -e --system
-elif [ -x /sbin/sysctl -a -z "$container" ]; then
- echo "Configuring kernel parameters: /sbin/sysctl -e --system"
- # Don't say "Applying /etc/sysctl.conf" or complain if the file doesn't exist
- /sbin/sysctl -e --system 2> /dev/null | grep -v "Applying /etc/sysctl.conf"
-fi
-
-# Check all the non-root filesystems:
-if [ ! -r /etc/fastboot -a -z "$container" ]; then
- echo "Checking non-root filesystems:"
- /sbin/fsck $FORCEFSCK -C -R -A -a
-fi
-
-# Mount usbfs only if it is found in /etc/fstab:
-if [ -z "$container" ]; then
- if grep -wq usbfs /proc/filesystems; then
- if ! grep -wq usbfs /proc/mounts ; then
- if grep -wq usbfs /etc/fstab; then
- /sbin/mount -v /proc/bus/usb
- fi
- fi
- fi
-fi
-
-# Mount non-root file systems in fstab, but not NFS or SMB
-# because TCP/IP is not yet configured, and not proc or sysfs
-# because those have already been mounted. Also check that
-# devpts is not already mounted before attempting to mount
-# it. With a 2.6.x or newer kernel udev mounts devpts.
-if [ -z "$container" ]; then
- echo "Mounting non-root local filesystems:"
- if /bin/grep -wq devpts /proc/mounts ; then
- # This pipe after the mount command is just to convert the new
- # mount verbose output back to the old format that contained
- # more useful information:
- /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs,nodevpts | grep successfully | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep " ${dev} " ; done
- else
- /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs | grep successfully | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep " ${dev} " ; done
- fi
-fi
-
-# Enable swapping again. This is needed in case a swapfile is used,
-# as it can't be enabled until the filesystem it resides on has been
-# mounted read-write.
-if [ -z "$container" ]; then
- /sbin/swapon -a 2> /dev/null
-fi
-
-# Start cgmanager (or cgproxy in a container):
-if [ -x /etc/rc.d/rc.cgmanager -a -d /sys/fs/cgroup ]; then
- /etc/rc.d/rc.cgmanager start
-fi
-
-# Start libcgroup services:
-if [ -x /etc/rc.d/rc.cgconfig -a -x /etc/rc.d/rc.cgred -a -d /sys/fs/cgroup ]; then
- /etc/rc.d/rc.cgconfig start ; echo " /usr/sbin/cgconfigparser -l /etc/cgconfig.conf"
- /etc/rc.d/rc.cgred start
-fi
-
-# Clean up some temporary files:
-rm -f /var/run/* /var/run/*/* /var/run/*/*/* /etc/nologin \
- /etc/dhcpc/*.pid /etc/forcefsck /etc/fastboot \
- /var/state/saslauthd/saslauthd.pid \
- /tmp/.Xauth* 1> /dev/null 2> /dev/null
-if [ -d /var/lib/pkgtools/setup/tmp ]; then
- ( cd /var/lib/pkgtools/setup/tmp && rm -rf * )
-elif [ -d /var/log/setup/tmp ]; then
- ( cd /var/log/setup/tmp && rm -rf * )
-fi
-( cd /tmp && rm -rf kde-[a-zA-Z]* ksocket-[a-zA-Z]* hsperfdata_[a-zA-Z]* plugtmp* )
-
-# Clear /var/lock/subsys:
-if [ -d /var/lock/subsys ]; then
- rm -f /var/lock/subsys/*
-fi
-
-# Create /tmp/{.ICE-unix,.X11-unix} if they are not present:
-if [ ! -e /tmp/.ICE-unix ]; then
- mkdir -p /tmp/.ICE-unix
- chmod 1777 /tmp/.ICE-unix
-fi
-if [ ! -e /tmp/.X11-unix ]; then
- mkdir -p /tmp/.X11-unix
- chmod 1777 /tmp/.X11-unix
-fi
-
-# Create a fresh utmp file:
-touch /var/run/utmp
-chown root:utmp /var/run/utmp
-chmod 664 /var/run/utmp
-
-# Update the current kernel level in the /etc/motd (Message Of The Day) file,
-# if the first line of that file begins with the word 'Linux'.
-# You are free to modify the rest of the file as you see fit.
-if [ -x /bin/sed ]; then
- /bin/sed -i "{1s/^Linux.*/$(/bin/uname -sr)\./}" /etc/motd
-fi
-
-# If there are SystemV init scripts for this runlevel, run them.
-if [ -x /etc/rc.d/rc.sysvinit ]; then
- /etc/rc.d/rc.sysvinit
-fi
-
-# Run serial port setup script:
-# CAREFUL! This can make some systems hang if the rc.serial script isn't
-# set up correctly. If this happens, you may have to edit the file from a
-# boot disk, and/or set it as non-executable:
-if [ -x /etc/rc.d/rc.serial -a -z "$container" ]; then
- /etc/rc.d/rc.serial start
-fi
-
-# Carry an entropy pool between reboots to improve randomness.
-if [ -f /etc/random-seed ]; then
- echo "Using /etc/random-seed to initialize /dev/urandom."
- cat /etc/random-seed > /dev/urandom
-fi
-# Use the pool size from /proc, or 4096 bits:
-if [ -r /proc/sys/kernel/random/poolsize ]; then
- dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(expr $(cat /proc/sys/kernel/random/poolsize) / 8) 2> /dev/null
-else
- dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
-fi
-chmod 600 /etc/random-seed
diff --git a/source/ap/lxc/scripts/rc.S.orig b/source/ap/lxc/scripts/rc.S.orig
deleted file mode 100644
index 4162938f..00000000
--- a/source/ap/lxc/scripts/rc.S.orig
+++ /dev/null
@@ -1,449 +0,0 @@
-#!/bin/sh
-#
-# /etc/rc.d/rc.S: System initialization script.
-#
-# Mostly written by: Patrick J. Volkerding, <volkerdi@slackware.com>
-#
-
-PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
-
-# Try to mount /proc:
-/sbin/mount -v proc /proc -n -t proc 2> /dev/null
-
-# Mount sysfs next, if the kernel supports it:
-if [ -d /sys ]; then
- if grep -wq sysfs /proc/filesystems ; then
- if ! grep -wq sysfs /proc/mounts ; then
- /sbin/mount -v sysfs /sys -n -t sysfs
- fi
- fi
-fi
-
-# If /run exists, mount a tmpfs on it (unless the
-# initrd has already done so):
-if [ -d /run ]; then
- if ! grep -wq "tmpfs /run tmpfs" /proc/mounts ; then
- /sbin/mount -v -n -t tmpfs tmpfs /run -o mode=0755,size=32M,nodev,nosuid,noexec
- fi
-fi
-
-# Load the loop device kernel module:
-if [ -x /etc/rc.d/rc.loop ]; then
- /etc/rc.d/rc.loop start
-fi
-
-# Initialize udev to manage /dev entries and hotplugging.
-# You may turn off udev by making the /etc/rc.d/rc.udev file non-executable
-# or giving the "nohotplug" option at boot, but realize that if you turn off
-# udev that you will have to load all the kernel modules that you need
-# yourself (possibly in /etc/rc.d/rc.modules.local), and make any additional
-# device nodes that you need in the /dev directory. Even USB and IEEE1394
-# devices will need to have the modules loaded by hand if udev is not used.
-# So use it. :-)
-if grep -wq sysfs /proc/mounts && grep -q devtmpfs /proc/filesystems ; then
- if ! grep -wq nohotplug /proc/cmdline ; then
- if [ -x /etc/rc.d/rc.udev ]; then
- /etc/rc.d/rc.udev start
- fi
- fi
-fi
-
-# Mount Control Groups filesystem interface:
-if grep -wq cgroup /proc/filesystems ; then
- if [ -d /sys/fs/cgroup ]; then
- # See linux-*/Documentation/cgroups/cgroups.txt (section 1.6)
- # Check if we have some tools to autodetect the available cgroup controllers
- if [ -x /bin/cut -a -x /bin/tail ]; then
- # Mount a tmpfs as the cgroup filesystem root
- mount -t tmpfs -o mode=0755,size=8M cgroup_root /sys/fs/cgroup
- # Autodetect available controllers and mount them in subfolders
- controllers="$(/bin/cut -f 1 /proc/cgroups | /bin/tail -n +2)"
- for i in $controllers; do
- mkdir /sys/fs/cgroup/$i
- mount -t cgroup -o $i $i /sys/fs/cgroup/$i
- done
- unset i controllers
- else
- # We can't use autodetection so fall back mounting them all together
- mount -t cgroup cgroup /sys/fs/cgroup
- fi
- else
- mkdir -p /dev/cgroup
- mount -t cgroup cgroup /dev/cgroup
- fi
-fi
-
-# Initialize the Logical Volume Manager.
-# This won't start unless we find /etc/lvmtab (LVM1) or
-# /etc/lvm/backup/ (LVM2). This is created by /sbin/vgscan, so to
-# use LVM you must run /sbin/vgscan yourself the first time (and
-# create some VGs and LVs).
-# Create LVM lock/run directories:
-mkdir -p -m 0700 /run/lvm /run/lock /run/lock/lvm
-if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
- echo "Initializing LVM (Logical Volume Manager):"
- # Check for device-mapper support.
- if ! grep -wq device-mapper /proc/devices ; then
- # Try to load a device-mapper kernel module:
- /sbin/modprobe -q dm-mod
- fi
- # Scan for new volume groups:
- /sbin/vgscan --mknodes --ignorelockingfailure 2> /dev/null
- if [ $? = 0 ]; then
- # Make volume groups available to the kernel.
- # This should also make logical volumes available.
- /sbin/vgchange -ay --ignorelockingfailure
- fi
-fi
-
-# Open any volumes created by cryptsetup.
-#
-# Some notes on /etc/crypttab in Slackware:
-# Only LUKS formatted volumes are supported (except for swap)
-# crypttab follows the following format:
-# <luks_name> <device> <password> <options>
-#
-# <luks_name>: This is the name of your LUKS volume.
-# For example: crypt-home
-#
-# <device>: This is the device containing your LUKS volume.
-# For example: /dev/sda2
-#
-# <password>: This is either the volume password in plain text, or the name of
-# a key file. Use 'none' to interactively enter password on boot.
-#
-# <options>: Comma-separated list of options. Note that there must be a
-# password field for any options to be picked up (use a password of 'none' to
-# get a password prompt at boot). The following options are supported:
-#
-# discard -- this will cause --allow-discards to be passed to the cryptsetup
-# program while opening the LUKS volume.
-#
-# ro -- this will cause --readonly to be passed to the cryptsetup program while
-# opening the LUKS volume.
-#
-# swap -- this option cannot be used with other options. The device given will
-# be formatted as a new encrypted volume with a random key on boot, and used as
-# swap.
-#
-if [ -f /etc/crypttab -a -x /sbin/cryptsetup ]; then
- # First, check for device-mapper support.
- if ! grep -wq device-mapper /proc/devices ; then
- # If device-mapper exists as a module, try to load it.
- # Try to load a device-mapper kernel module:
- /sbin/modprobe -q dm-mod
- fi
- # NOTE: we only support LUKS formatted volumes (except for swap)!
- cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
- eval LUKSARRAY=( $line )
- LUKS="${LUKSARRAY[0]}"
- DEV="${LUKSARRAY[1]}"
- PASS="${LUKSARRAY[2]}"
- OPTS="${LUKSARRAY[3]}"
- LUKSOPTS=""
- if echo $OPTS | grep -wq ro ; then LUKSOPTS="${LUKSOPTS} --readonly" ; fi
- if echo $OPTS | grep -wq discard ; then LUKSOPTS="${LUKSOPTS} --allow-discards" ; fi
- # Skip LUKS volumes that were already unlocked (in the initrd):
- /sbin/cryptsetup status $LUKS 2>/dev/null | head -n 1 | grep -q "is active" && continue
- if /sbin/cryptsetup isLuks $DEV 2>/dev/null ; then
- if [ -z "${LUKSOPTS}" ]; then
- echo "Unlocking LUKS encrypted volume '${LUKS}' on device '$DEV':"
- else
- echo "Unlocking LUKS encrypted volume '${LUKS}' on device '$DEV' with options '${LUKSOPTS}':"
- fi
- if [ -n "${PASS}" -a "${PASS}" != "none" ]; then
- if [ -f "${PASS}" ]; then
- # A password was given a key-file filename
- /sbin/cryptsetup ${LUKSOPTS} --key-file=${PASS} luksOpen $DEV $LUKS
- else
- # A password was provided in plain text
- echo "${PASS}" | /sbin/cryptsetup ${LUKSOPTS} luksOpen $DEV $LUKS
- fi
- else
- # No password was given, or a password of 'none' was given
- /sbin/cryptsetup ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1
- fi
- elif echo $OPTS | grep -wq swap ; then
- # If any of the volumes is to be used as encrypted swap,
- # then encrypt it using a random key and run mkswap:
- echo "Creating encrypted swap volume '${LUKS}' on device '$DEV':"
- /sbin/cryptsetup --cipher=aes --key-file=/dev/urandom --key-size=256 create $LUKS $DEV
- mkswap /dev/mapper/$LUKS
- fi
- done
-fi
-
-# Enable swapping:
-/sbin/swapon -a 2> /dev/null
-
-# Set the tick and frequency for the system clock.
-# Default values are: TICK=10000 and FREQ=0
-TICK=10000
-FREQ=0
-# If there's a /etc/default/adjtimex config file, source it to override
-# the default TICK and FREQ:
-if [ -r /etc/default/adjtimex ]; then
- . /etc/default/adjtimex
-fi
-if /sbin/adjtimex --tick $TICK --frequency $FREQ; then
- echo "Setting the system clock rate: /sbin/adjtimex --tick $TICK --frequency $FREQ"
-else
- echo "Failed to set system clock with adjtimex, possibly invalid parameters? (TICK=$TICK FREQ=$FREQ)"
-fi
-
-# Set the system time from the hardware clock using hwclock --hctosys.
-if [ -x /sbin/hwclock ]; then
- # Check for a broken motherboard RTC clock (where ioports for rtc are
- # unknown) to prevent hwclock causing a hang:
- if ! grep -q " : rtc" /proc/ioports ; then
- CLOCK_OPT="--directisa"
- fi
- if [ /etc/adjtime -nt /etc/hardwareclock ]; then
- if grep -q "^LOCAL" /etc/adjtime ; then
- echo -n "Setting system time from the hardware clock (localtime): "
- else
- echo -n "Setting system time from the hardware clock (UTC): "
- fi
- /sbin/hwclock $CLOCK_OPT --hctosys
- elif grep -wq "^localtime" /etc/hardwareclock 2> /dev/null ; then
- echo -n "Setting system time from the hardware clock (localtime): "
- /sbin/hwclock $CLOCK_OPT --localtime --hctosys
- else
- echo -n "Setting system time from the hardware clock (UTC): "
- /sbin/hwclock $CLOCK_OPT --utc --hctosys
- fi
- date
-fi
-
-# Test to see if the root partition is read-only, like it ought to be.
-READWRITE=no
-if touch /fsrwtestfile 2>/dev/null; then
- rm -f /fsrwtestfile
- READWRITE=yes
-else
- echo "Testing root filesystem status: read-only filesystem"
-fi
-
-# See if a forced filesystem check was requested at shutdown:
-if [ -r /etc/forcefsck ]; then
- FORCEFSCK="-f"
-fi
-
-# If we're using F2FS for the root filesystem, don't check it as it doesn't
-# allow checking a read-only filesystem:
-if grep -q ' / f2fs ' /proc/mounts ; then
- echo "Remounting root device with read-write enabled."
- /sbin/mount -w -v -n -o remount /
-elif [ ! $READWRITE = yes ]; then
- # Check the root filesystem:
- RETVAL=0
- if [ ! -r /etc/fastboot ]; then
- echo "Checking root filesystem:"
- /sbin/fsck $FORCEFSCK -C -a /
- RETVAL=$?
- fi
- # An error code of 2 or higher will require a reboot.
- if [ $RETVAL -ge 2 ]; then
- # An error code equal to or greater than 4 means that some errors
- # could not be corrected. This requires manual attention, so we
- # offer a chance to try to fix the problem in single-user mode:
- if [ $RETVAL -ge 4 ]; then
- echo
- echo "***********************************************************"
- echo "*** An error occurred during the root filesystem check. ***"
- echo "*** You will now be given a chance to log into the ***"
- echo "*** system in single-user mode to fix the problem. ***"
- echo "*** ***"
- echo "*** If you are using the ext2 filesystem, running ***"
- echo "*** 'e2fsck -v -y <partition>' might help. ***"
- echo "***********************************************************"
- echo
- echo "Once you exit the single-user shell, the system will reboot."
- echo
- PS1="(Repair filesystem) \#"; export PS1
- sulogin
- else # With an error code of 2 or 3, reboot the machine automatically:
- echo
- echo "***********************************"
- echo "*** The filesystem was changed. ***"
- echo "*** The system will now reboot. ***"
- echo "***********************************"
- echo
- fi
- echo "Unmounting file systems."
- /sbin/umount -a -r
- /sbin/mount -n -o remount,ro /
- echo "Rebooting system."
- reboot -f
- fi
- # Remount the root filesystem in read-write mode
- echo "Remounting root device with read-write enabled."
- /sbin/mount -w -v -n -o remount /
- if [ $? -gt 0 ] ; then
- echo "FATAL: Attempt to remount root device as read-write failed! This is going to"
- echo "cause serious problems."
- fi
-else
- echo "Testing root filesystem status: read-write filesystem"
- echo
- echo "ERROR: Root partition has already been mounted read-write. Cannot check!"
- echo
- echo "For filesystem checking to work properly, your system must initially mount"
- echo "the root partition as read only. If you're booting with LILO, add a line:"
- echo
- echo " read-only"
- echo
- echo "to the Linux section in your /etc/lilo.conf and type 'lilo' to reinstall it."
-fi # Done checking root filesystem
-
-# If /etc/mtab is a symlink (probably to /proc/mounts) then we don't want to mess with it.
-if [ ! -L /etc/mtab -o ! -r /etc/mtab ]; then
- # /etc/mtab is a file (or doesn't exist), so we'll handle it the old way:
- # Any /etc/mtab that exists here is old, so we start with a new one:
- /bin/rm -f /etc/mtab{,~,.tmp} && /bin/touch /etc/mtab
- # Add /, /proc, /sys, and /dev/shm mounts to /etc/mtab:
- /sbin/mount -f -w /
- if [ -d /proc/sys ]; then
- /sbin/mount -f -t proc proc /proc
- fi
- if [ -d /sys/bus ]; then
- /sbin/mount -f -t sysfs sysfs /sys
- fi
- if grep -q '^[^ ]\+ /dev/shm ' /proc/mounts 2> /dev/null ; then
- /sbin/mount -f -t tmpfs tmpfs /dev/shm
- fi
-fi
-
-# Configure ISA Plug-and-Play devices:
-if [ -r /etc/isapnp.conf ]; then
- if [ -x /sbin/isapnp ]; then
- /sbin/isapnp /etc/isapnp.conf
- fi
-fi
-
-# Run the kernel module script. This updates the module dependencies and
-# also supports manually loading kernel modules through rc.modules.local.
-if [ -x /etc/rc.d/rc.modules ]; then
- /etc/rc.d/rc.modules
-fi
-
-# Configure kernel parameters:
-if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then
- echo "Configuring kernel parameters: /sbin/sysctl -e --system"
- /sbin/sysctl -e --system
-elif [ -x /sbin/sysctl ]; then
- echo "Configuring kernel parameters: /sbin/sysctl -e --system"
- # Don't say "Applying /etc/sysctl.conf" or complain if the file doesn't exist
- /sbin/sysctl -e --system 2> /dev/null | grep -v "Applying /etc/sysctl.conf"
-fi
-
-# Check all the non-root filesystems:
-if [ ! -r /etc/fastboot ]; then
- echo "Checking non-root filesystems:"
- /sbin/fsck $FORCEFSCK -C -R -A -a
-fi
-
-# Mount usbfs only if it is found in /etc/fstab:
-if grep -wq usbfs /proc/filesystems; then
- if ! grep -wq usbfs /proc/mounts ; then
- if grep -wq usbfs /etc/fstab; then
- /sbin/mount -v /proc/bus/usb
- fi
- fi
-fi
-
-# Mount non-root file systems in fstab, but not NFS or SMB
-# because TCP/IP is not yet configured, and not proc or sysfs
-# because those have already been mounted. Also check that
-# devpts is not already mounted before attempting to mount
-# it. With a 2.6.x or newer kernel udev mounts devpts.
-echo "Mounting non-root local filesystems:"
-if /bin/grep -wq devpts /proc/mounts ; then
- # This pipe after the mount command is just to convert the new
- # mount verbose output back to the old format that contained
- # more useful information:
- /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs,nodevpts | grep successfully | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep " ${dev} " ; done
-else
- /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs | grep successfully | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep " ${dev} " ; done
-fi
-
-# Enable swapping again. This is needed in case a swapfile is used,
-# as it can't be enabled until the filesystem it resides on has been
-# mounted read-write.
-/sbin/swapon -a 2> /dev/null
-
-# Start cgmanager (or cgproxy in a container):
-if [ -x /etc/rc.d/rc.cgmanager -a -d /sys/fs/cgroup ]; then
- /etc/rc.d/rc.cgmanager start
-fi
-
-# Start libcgroup services:
-if [ -x /etc/rc.d/rc.cgconfig -a -x /etc/rc.d/rc.cgred -a -d /sys/fs/cgroup ]; then
- /etc/rc.d/rc.cgconfig start ; echo " /usr/sbin/cgconfigparser -l /etc/cgconfig.conf"
- /etc/rc.d/rc.cgred start
-fi
-
-# Clean up some temporary files:
-rm -f /var/run/* /var/run/*/* /var/run/*/*/* /etc/nologin \
- /etc/dhcpc/*.pid /etc/forcefsck /etc/fastboot \
- /var/state/saslauthd/saslauthd.pid \
- /tmp/.Xauth* 1> /dev/null 2> /dev/null
-if [ -d /var/lib/pkgtools/setup/tmp ]; then
- ( cd /var/lib/pkgtools/setup/tmp && rm -rf * )
-elif [ -d /var/log/setup/tmp ]; then
- ( cd /var/log/setup/tmp && rm -rf * )
-fi
-( cd /tmp && rm -rf kde-[a-zA-Z]* ksocket-[a-zA-Z]* hsperfdata_[a-zA-Z]* plugtmp* )
-
-# Clear /var/lock/subsys:
-if [ -d /var/lock/subsys ]; then
- rm -f /var/lock/subsys/*
-fi
-
-# Create /tmp/{.ICE-unix,.X11-unix} if they are not present:
-if [ ! -e /tmp/.ICE-unix ]; then
- mkdir -p /tmp/.ICE-unix
- chmod 1777 /tmp/.ICE-unix
-fi
-if [ ! -e /tmp/.X11-unix ]; then
- mkdir -p /tmp/.X11-unix
- chmod 1777 /tmp/.X11-unix
-fi
-
-# Create a fresh utmp file:
-touch /var/run/utmp
-chown root:utmp /var/run/utmp
-chmod 664 /var/run/utmp
-
-# Update the current kernel level in the /etc/motd (Message Of The Day) file,
-# if the first line of that file begins with the word 'Linux'.
-# You are free to modify the rest of the file as you see fit.
-if [ -x /bin/sed ]; then
- /bin/sed -i "{1s/^Linux.*/$(/bin/uname -sr)\./}" /etc/motd
-fi
-
-# If there are SystemV init scripts for this runlevel, run them.
-if [ -x /etc/rc.d/rc.sysvinit ]; then
- /etc/rc.d/rc.sysvinit
-fi
-
-# Run serial port setup script:
-# CAREFUL! This can make some systems hang if the rc.serial script isn't
-# set up correctly. If this happens, you may have to edit the file from a
-# boot disk, and/or set it as non-executable:
-if [ -x /etc/rc.d/rc.serial ]; then
- /etc/rc.d/rc.serial start
-fi
-
-# Carry an entropy pool between reboots to improve randomness.
-if [ -f /etc/random-seed ]; then
- echo "Using /etc/random-seed to initialize /dev/urandom."
- cat /etc/random-seed > /dev/urandom
-fi
-# Use the pool size from /proc, or 4096 bits:
-if [ -r /proc/sys/kernel/random/poolsize ]; then
- dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(expr $(cat /proc/sys/kernel/random/poolsize) / 8) 2> /dev/null
-else
- dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
-fi
-chmod 600 /etc/random-seed
diff --git a/source/ap/lxc/scripts/rc.inet1.lxc b/source/ap/lxc/scripts/rc.inet1.lxc
deleted file mode 100644
index 2ae9bbb5..00000000
--- a/source/ap/lxc/scripts/rc.inet1.lxc
+++ /dev/null
@@ -1,387 +0,0 @@
-#!/bin/bash
-# /etc/rc.d/rc.inet1
-# This script is used to bring up the various network interfaces.
-#
-# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv)
-
-# Set $container variable since this is a modified version of rc.inet1 with
-# changes for running in an lxc container. A check to see if this variable
-# is set will be used to skip parts of the script that we don't want to run
-# in a container. Thanks to Matteo Bernardini <ponce@slackbuilds.org> and
-# Chris Willing for the initial work making this script lxc compatible.
-container="lxc"
-
-############################
-# READ NETWORK CONFIG FILE #
-############################
-
-# Get the configuration information from /etc/rc.d/rc.inet1.conf:
-. /etc/rc.d/rc.inet1.conf
-
-###########
-# LOGGING #
-###########
-
-# If possible, log events in /var/log/messages:
-if [ -f /var/run/syslogd.pid ] && [ -x /usr/bin/logger ]; then
- LOGGER=/usr/bin/logger
-else # output to stdout/stderr:
- LOGGER=/bin/cat
-fi
-
-# Handy wrapper for verbose logging
-debug_log() {
- if [ "$DEBUG_ETH_UP" = "yes" ]; then
- echo "/etc/rc.d/rc.inet1: $*" | $LOGGER
- fi
-}
-
-############################
-# DETERMINE INTERFACE LIST #
-############################
-
-# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum
-# of 6 interfaces, but you can easily enlarge the interface limit
-# - send me a picture of such a box :-).
-# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface.
-# This way, the new script is compatible with older rc.inet1.conf files.
-# The IFNAME array will be used to determine which interfaces to bring up/down.
-MAXNICS=${MAXNICS:-6}
-i=0
-while [ $i -lt $MAXNICS ];
-do
- IFNAME[$i]=${IFNAME[$i]:=eth${i}}
- i=$(($i+1))
-done
-debug_log "List of interfaces: '${IFNAME[*]}'"
-
-######################
-# LOOPBACK FUNCTIONS #
-######################
-
-# Function to bring up the loopback interface. If loopback is
-# already up, do nothing.
-lo_up() {
- if [ -e /sys/class/net/lo ]; then
- if ! /sbin/ip link show dev lo | grep -wq -e "state UP" -e "state UNKNOWN" ; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip address add 127.0.0.1/8 dev lo" | $LOGGER
- /sbin/ip address add 127.0.0.1/8 dev lo
- /sbin/ip link set dev lo up
- echo "/etc/rc.d/rc.inet1: /sbin/ip route add 127.0.0.0/8 dev lo" | $LOGGER
- /sbin/ip route add 127.0.0.0/8 dev lo
- fi
- fi
-}
-
-# Function to take down the loopback interface:
-lo_down() {
- if [ -e /sys/class/net/lo ]; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev lo down" | $LOGGER
- /sbin/ip link set dev lo down
- fi
-}
-
-#######################
-# INTERFACE FUNCTIONS #
-#######################
-
-# Function to create virtual interfaces
-virtif_create() {
- # argument is 'i' - the position of this interface in the VIRTIFNAME array.
- # this loop goes from i=0 to i=number_of_configured_virtual_interfaces_minus_one
- # which means it doesn't do anything if there are none.
- for i in $(seq 0 $((${#VIRTIFNAME[@]} - 1))); do
- /sbin/ip tuntap add dev ${VIRTIFNAME[$i]} mode ${VIRTIFTYPE[$i]} user ${VIRTIFUSER[$i]} group ${VIRTIFGROUP[$i]}
- done
-}
-
-# Function to destory virtual interfaces
-virtif_destroy() {
- # argument is 'i' - the position of this interface in the VIRTIFNAME array.
- for i in $(seq 0 $((${#VIRTIFNAME[@]} - 1))); do
- /sbin/ip tuntap del dev ${VIRTIFNAME[$i]} mode ${VIRTIFTYPE[$i]}
- done
-}
-
-# Function to assemble a bridge interface.
-br_open() {
- # argument is 'i' - the position of this interface in the IFNAME array.
- /sbin/ip link add name ${IFNAME[$1]} type bridge
- for BRIF in ${BRNICS[$1]}; do
- /sbin/ip link set dev $BRIF down
- /sbin/ip address add 0.0.0.0 dev $BRIF
- /sbin/ip link set dev $BRIF master ${IFNAME[$1]}
- /sbin/ip link set dev $BRIF up
- done
- /sbin/ip link set dev ${IFNAME[$1]} up
-}
-
-# Function to disassemble a bridge interface.
-br_close() {
- /sbin/ip link set dev ${IFNAME[$1]} down
- # argument is 'i' - the position of this interface in the IFNAME array.
- #for BRIF in ${BRNICS[$1]}; do
- for BRIF in $(ls --indicator-style=none /sys/class/net/${IFNAME[$1]}/brif/)
- do
- /sbin/ip link set dev $BRIF nomaster
- done
- /sbin/ip link set dev ${IFNAME[$1]} down
- /sbin/ip link del ${IFNAME[$1]}
-}
-
-# Function to bring up a network interface. If the interface is
-# already up or does not yet exist (perhaps because the kernel driver
-# is not loaded yet), do nothing.
-if_up() {
- # Determine position 'i' of this interface in the IFNAME array:
- i=0
- while [ $i -lt $MAXNICS ]; do
- [ "${IFNAME[$i]}" = "${1}" ] && break
- i=$(($i+1))
- done
- # If "i" is greater or equal to "MAXNICS" at this point, it means we didn't
- # find an entry in IFNAME array corresponding to "$1", which likely means
- # there are more interfaces configured than MAXNICS. Let's err on the
- # side of caution and do nothing instead of possibly doing the wrong thing.
- if [ $i -ge $MAXNICS ]; then
- echo "/etc/rc.d/rc.inet1: skipping ${1}, you might need to increase MAXNICS" | $LOGGER
- return
- fi
-
- if [ -z "$container" ]; then
- # If the interface is a bridge, then create it first:
- [ -n "${BRNICS[$i]}" ] && br_open $i
- # If the interface isn't in the kernel yet (but there's an alias for it in
- # modules.conf), then it should be loaded first:
- if [ -z "${IPADDR[$i]}" ] && [ "${USE_DHCP[$i]}" != "yes" ]; then # skip unconfigured interfaces
- debug_log "skipping ${1} early, interface is not configured in /etc/rc.d/rc.inet1.conf"
- return 0
- fi
- if [ ! -e /sys/class/net/${1%%:*} ]; then # no interface yet
- if /sbin/modprobe -c | grep -v "^#" | grep -w "alias ${1}" | grep -vw "alias ${1} off" > /dev/null ; then
- echo "/etc/rc.d/rc.inet1: /sbin/modprobe ${1}" | $LOGGER
- /sbin/modprobe ${1}
- fi
- fi
- fi # end check container
-
- if [ -e /sys/class/net/${1%%:*} ]; then # interface exists
- if ! /sbin/ip address show dev ${1} 2>/dev/null | grep -wq inet || \
- ! /sbin/ip link show dev ${1} | grep -wq "state UP" ; then # interface not up or not configured
- if [ -n "${HWADDR[$i]}" ]; then # Set hardware address _before_ the interface goes up:
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} address ${HWADDR[$i]}" | $LOGGER
- /sbin/ip link set dev ${1} address ${HWADDR[$i]}
- fi
- if [ -n "${MTU[$i]}" ]; then # Set MTU to something else than 1500
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} mtu ${MTU[$i]}" | $LOGGER
- /sbin/ip link set dev ${1} mtu ${MTU[$i]}
- fi
- if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then
- /sbin/ip link set dev ${1} up # Bring up interface
- fi
- if [ -x /etc/rc.d/rc.wireless ]; then
- . /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters
- fi
- if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up
- # Clear DHCP_OPTIONS before adding new options to it:
- unset DHCP_OPTIONS
- # Set DHCP_OPTIONS for this interface:
- [ -n "${DHCP_HOSTNAME[$i]}" ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}"
- [ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -C resolv.conf"
- [ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -C ntp.conf"
- [ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G"
- [ "${DHCP_DEBUG[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -d"
- [ "${DHCP_NOIPV4LL[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -L"
- [ -n "${DHCP_IPADDR[$i]}" ] && DHCP_OPTIONS="$DHCP_OPTIONS -r ${DHCP_IPADDR[$i]}"
- echo "Polling for DHCP server on interface ${1}:"
- # If you set a timeout, you get one, even if the kernel doesn't think that
- # your device is connected, in case /sys isn't right (which it usually isn't
- # except right after the device is loaded, when it usually is):
- #### (start commented out)
- # This is deactivated for now since the kernel has been returning incorrect
- # results concerning whether the interface carrier is detected.
- #if [ -z "${DHCP_TIMEOUT[$i]}" ]; then
- # /sbin/ip link set dev ${1} up && sleep 1
- # CONNSTATUS="$(cat /sys/class/net/${1}/carrier 2> /dev/null)"
- # /sbin/ip link set dev ${1} down
- # if [ "$CONNSTATUS" = "0" ]; then
- # # The kernel has just told us the cable isn't even plugged in, but we will
- # # give any DHCP server a short chance to reply anyway:
- # echo "No carrier detected on ${1}. Reducing DHCP timeout to 15 seconds."
- # DHCP_TIMEOUT[$i]=15
- # fi
- #fi
- #### (end commented out)
- # 15 seconds should be a reasonable default DHCP timeout. 30 was too much.
- echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -L -t ${DHCP_TIMEOUT[$i]:-15} ${DHCP_OPTIONS} ${1}" | $LOGGER
- /sbin/dhcpcd -L -t ${DHCP_TIMEOUT[$i]:-15} ${DHCP_OPTIONS} ${1}
- if [ "$?" == "0" ]; then # the dhcp call has succeeded
- if [ -n "${IPALIASES[$i]}" ]; then
- # Add extra IP addresses, if defined, to interface
- num=0
- for ipalias in ${IPALIASES[$i]}; do
- ip="${ipalias%/*}"
- nm="${ipalias#*/}"
- [ -z "$nm" ] || [ "$ip" == "$nm" ] && nm="32"
- /sbin/ip address add ${ip}/${nm} dev ${1} label ${1}:${num}
- num=$(($num + 1))
- done
- fi
- if [ "${PROMISCUOUS[$i]}" = "yes" ]; then
- # Set promiscuous mode on the interface
- /sbin/ip link set dev ${1} promisc on
- fi
- fi
- else # bring up interface using a static IP address
- if [ -n "${IPADDR[$i]}" ]; then # skip unconfigured interfaces
- # Set up the network card:
- echo "/etc/rc.d/rc.inet1: /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} broadcast + dev ${1}" | $LOGGER
- /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} broadcast + dev ${1}
- if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then
- /sbin/ip link set dev ${1} up # Bring up interface
- fi
- # Add extra IP addresses, if defined, to interface
- if [ -n "${IPALIASES[$i]}" ]; then
- num=0
- for ipalias in ${IPALIASES[$i]}; do
- ip="${ipalias%/*}"
- nm="${ipalias#*/}"
- [ -z "$nm" ] || [ "$ip" == "$nm" ] && nm="32"
- /sbin/ip address add ${ip}/${nm} dev ${1} label ${1}:${num}
- num=$(($num + 1))
- done
- fi
- if [ "${PROMISCUOUS[$i]}" = "yes" ]; then
- # Set promiscuous mode on the interface
- /sbin/ip link set dev ${1} promisc on
- fi
- else
- debug_log "${1} interface is not configured in /etc/rc.d/rc.inet1.conf"
- fi
- fi
- else
- debug_log "${1} is already up, skipping"
- fi
- else
- debug_log "${1} interface does not exist (yet)"
- fi
-}
-
-# Function to take down a network interface:
-if_down() {
- # Determine position 'i' of this interface in the IFNAME array:
- i=0
- while [ $i -lt $MAXNICS ]; do
- [ "${IFNAME[$i]}" = "${1}" ] && break
- i=$(($i+1))
- done
- if [ $i -ge $MAXNICS ]; then
- echo "/etc/rc.d/rc.inet1: skipping ${1}, you might need to increase MAXNICS" | $LOGGER
- return
- fi
- if [ -e /sys/class/net/${1%%:*} ]; then
- if [ "${USE_DHCP[$i]}" = "yes" ]; then
- echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -k -d ${1}" | $LOGGER
- /sbin/dhcpcd -k -d ${1} 2> /dev/null || /sbin/ip link set dev ${1} down
- sleep 1
- else
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} down" | $LOGGER
- /sbin/ip link set dev ${1} down
- fi
- if [ -x /etc/rc.d/rc.wireless ]; then
- . /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any.
- fi
- # If the interface is a bridge, then destroy it now:
- if [ -n "${BRNICS[$i]}" ]; then
- br_close $i
- fi
- # Flush the address from the interface:
- ip address flush dev ${1}
- fi
-}
-
-#####################
-# GATEWAY FUNCTIONS #
-#####################
-
-# Function to bring up the gateway if there is not yet a default route:
-gateway_up() {
- if ! /sbin/ip route show | grep -wq default ; then
- if [ -n "$GATEWAY" ]; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip route add default via ${GATEWAY}" | $LOGGER
- /sbin/ip route add default via ${GATEWAY} | $LOGGER
- fi
- fi
-}
-
-# Function to take down an existing default gateway:
-gateway_down() {
- if /sbin/ip route show | grep -wq default ; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip route del default" | $LOGGER
- /sbin/ip route del default
- fi
-}
-
-# Function to start the network:
-start() {
- lo_up
- virtif_create
- for i in "${IFNAME[@]}" ; do
- if_up $i
- done
- gateway_up
-}
-
-# Function to stop the network:
-stop() {
- gateway_down
- for i in "${IFNAME[@]}" ; do
- if_down $i
- done
- virtif_destroy
- lo_down
-}
-
-
-############
-### MAIN ###
-############
-
-case "$1" in
-start|up) # "start" (or "up") brings up all configured interfaces:
- start
- ;;
-stop|down) # "stop" (or "down") takes down all configured interfaces:
- stop
- ;;
-restart) # "restart" restarts the network:
- stop
- start
- ;;
-lo_start|lo_up) # Start the loopback interface:
- lo_up
- ;;
-lo_stop|lo_down) # Stop the loopback interface:
- lo_down
- ;;
-*_start|*_up) # Example: "eth1_start" (or "eth1_up") will start the specified interface 'eth1'
- INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1)
- if_up $INTERFACE
- gateway_up
- ;;
-*_stop|*_down) # Example: "eth0_stop" (or "eth0_down") will stop the specified interface 'eth0'
- INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1)
- if_down $INTERFACE
- ;;
-*_restart) # Example: "wlan0_restart" will take 'wlan0' down and up again
- INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1)
- if_down $INTERFACE
- sleep 1
- if_up $INTERFACE
- gateway_up
- ;;
-*) # The default is to bring up all configured interfaces:
- start
-esac
-
-# End of /etc/rc.d/rc.inet1
diff --git a/source/ap/lxc/scripts/rc.inet1.orig b/source/ap/lxc/scripts/rc.inet1.orig
deleted file mode 100644
index cf9da0f4..00000000
--- a/source/ap/lxc/scripts/rc.inet1.orig
+++ /dev/null
@@ -1,376 +0,0 @@
-#!/bin/bash
-# /etc/rc.d/rc.inet1
-# This script is used to bring up the various network interfaces.
-#
-# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv)
-
-############################
-# READ NETWORK CONFIG FILE #
-############################
-
-# Get the configuration information from /etc/rc.d/rc.inet1.conf:
-. /etc/rc.d/rc.inet1.conf
-
-###########
-# LOGGING #
-###########
-
-# If possible, log events in /var/log/messages:
-if [ -f /var/run/syslogd.pid ] && [ -x /usr/bin/logger ]; then
- LOGGER=/usr/bin/logger
-else # output to stdout/stderr:
- LOGGER=/bin/cat
-fi
-
-# Handy wrapper for verbose logging
-debug_log() {
- if [ "$DEBUG_ETH_UP" = "yes" ]; then
- echo "/etc/rc.d/rc.inet1: $*" | $LOGGER
- fi
-}
-
-############################
-# DETERMINE INTERFACE LIST #
-############################
-
-# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum
-# of 6 interfaces, but you can easily enlarge the interface limit
-# - send me a picture of such a box :-).
-# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface.
-# This way, the new script is compatible with older rc.inet1.conf files.
-# The IFNAME array will be used to determine which interfaces to bring up/down.
-MAXNICS=${MAXNICS:-6}
-i=0
-while [ $i -lt $MAXNICS ];
-do
- IFNAME[$i]=${IFNAME[$i]:=eth${i}}
- i=$(($i+1))
-done
-debug_log "List of interfaces: '${IFNAME[*]}'"
-
-######################
-# LOOPBACK FUNCTIONS #
-######################
-
-# Function to bring up the loopback interface. If loopback is
-# already up, do nothing.
-lo_up() {
- if [ -e /sys/class/net/lo ]; then
- if ! /sbin/ip link show dev lo | grep -wq -e "state UP" -e "state UNKNOWN" ; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip address add 127.0.0.1/8 dev lo" | $LOGGER
- /sbin/ip address add 127.0.0.1/8 dev lo
- /sbin/ip link set dev lo up
- echo "/etc/rc.d/rc.inet1: /sbin/ip route add 127.0.0.0/8 dev lo" | $LOGGER
- /sbin/ip route add 127.0.0.0/8 dev lo
- fi
- fi
-}
-
-# Function to take down the loopback interface:
-lo_down() {
- if [ -e /sys/class/net/lo ]; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev lo down" | $LOGGER
- /sbin/ip link set dev lo down
- fi
-}
-
-#######################
-# INTERFACE FUNCTIONS #
-#######################
-
-# Function to create virtual interfaces
-virtif_create() {
- # argument is 'i' - the position of this interface in the VIRTIFNAME array.
- # this loop goes from i=0 to i=number_of_configured_virtual_interfaces_minus_one
- # which means it doesn't do anything if there are none.
- for i in $(seq 0 $((${#VIRTIFNAME[@]} - 1))); do
- /sbin/ip tuntap add dev ${VIRTIFNAME[$i]} mode ${VIRTIFTYPE[$i]} user ${VIRTIFUSER[$i]} group ${VIRTIFGROUP[$i]}
- done
-}
-
-# Function to destory virtual interfaces
-virtif_destroy() {
- # argument is 'i' - the position of this interface in the VIRTIFNAME array.
- for i in $(seq 0 $((${#VIRTIFNAME[@]} - 1))); do
- /sbin/ip tuntap del dev ${VIRTIFNAME[$i]} mode ${VIRTIFTYPE[$i]}
- done
-}
-
-# Function to assemble a bridge interface.
-br_open() {
- # argument is 'i' - the position of this interface in the IFNAME array.
- /sbin/ip link add name ${IFNAME[$1]} type bridge
- for BRIF in ${BRNICS[$1]}; do
- /sbin/ip link set dev $BRIF down
- /sbin/ip address add 0.0.0.0 dev $BRIF
- /sbin/ip link set dev $BRIF master ${IFNAME[$1]}
- /sbin/ip link set dev $BRIF up
- done
- /sbin/ip link set dev ${IFNAME[$1]} up
-}
-
-# Function to disassemble a bridge interface.
-br_close() {
- /sbin/ip link set dev ${IFNAME[$1]} down
- # argument is 'i' - the position of this interface in the IFNAME array.
- #for BRIF in ${BRNICS[$1]}; do
- for BRIF in $(ls --indicator-style=none /sys/class/net/${IFNAME[$1]}/brif/)
- do
- /sbin/ip link set dev $BRIF nomaster
- done
- /sbin/ip link set dev ${IFNAME[$1]} down
- /sbin/ip link del ${IFNAME[$1]}
-}
-
-# Function to bring up a network interface. If the interface is
-# already up or does not yet exist (perhaps because the kernel driver
-# is not loaded yet), do nothing.
-if_up() {
- # Determine position 'i' of this interface in the IFNAME array:
- i=0
- while [ $i -lt $MAXNICS ]; do
- [ "${IFNAME[$i]}" = "${1}" ] && break
- i=$(($i+1))
- done
- # If "i" is greater or equal to "MAXNICS" at this point, it means we didn't
- # find an entry in IFNAME array corresponding to "$1", which likely means
- # there are more interfaces configured than MAXNICS. Let's err on the
- # side of caution and do nothing instead of possibly doing the wrong thing.
- if [ $i -ge $MAXNICS ]; then
- echo "/etc/rc.d/rc.inet1: skipping ${1}, you might need to increase MAXNICS" | $LOGGER
- return
- fi
- # If the interface is a bridge, then create it first:
- [ -n "${BRNICS[$i]}" ] && br_open $i
- # If the interface isn't in the kernel yet (but there's an alias for it in
- # modules.conf), then it should be loaded first:
- if [ -z "${IPADDR[$i]}" ] && [ "${USE_DHCP[$i]}" != "yes" ]; then # skip unconfigured interfaces
- debug_log "skipping ${1} early, interface is not configured in /etc/rc.d/rc.inet1.conf"
- return 0
- fi
- if [ ! -e /sys/class/net/${1%%:*} ]; then # no interface yet
- if /sbin/modprobe -c | grep -v "^#" | grep -w "alias ${1}" | grep -vw "alias ${1} off" > /dev/null ; then
- echo "/etc/rc.d/rc.inet1: /sbin/modprobe ${1}" | $LOGGER
- /sbin/modprobe ${1}
- fi
- fi
- if [ -e /sys/class/net/${1%%:*} ]; then # interface exists
- if ! /sbin/ip address show dev ${1} 2>/dev/null | grep -wq inet || \
- ! /sbin/ip link show dev ${1} | grep -wq "state UP" ; then # interface not up or not configured
- if [ -n "${HWADDR[$i]}" ]; then # Set hardware address _before_ the interface goes up:
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} address ${HWADDR[$i]}" | $LOGGER
- /sbin/ip link set dev ${1} address ${HWADDR[$i]}
- fi
- if [ -n "${MTU[$i]}" ]; then # Set MTU to something else than 1500
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} mtu ${MTU[$i]}" | $LOGGER
- /sbin/ip link set dev ${1} mtu ${MTU[$i]}
- fi
- if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then
- /sbin/ip link set dev ${1} up # Bring up interface
- fi
- if [ -x /etc/rc.d/rc.wireless ]; then
- . /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters
- fi
- if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up
- # Clear DHCP_OPTIONS before adding new options to it:
- unset DHCP_OPTIONS
- # Set DHCP_OPTIONS for this interface:
- [ -n "${DHCP_HOSTNAME[$i]}" ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}"
- [ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -C resolv.conf"
- [ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -C ntp.conf"
- [ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G"
- [ "${DHCP_DEBUG[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -d"
- [ "${DHCP_NOIPV4LL[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -L"
- [ -n "${DHCP_IPADDR[$i]}" ] && DHCP_OPTIONS="$DHCP_OPTIONS -r ${DHCP_IPADDR[$i]}"
- echo "Polling for DHCP server on interface ${1}:"
- # If you set a timeout, you get one, even if the kernel doesn't think that
- # your device is connected, in case /sys isn't right (which it usually isn't
- # except right after the device is loaded, when it usually is):
- #### (start commented out)
- # This is deactivated for now since the kernel has been returning incorrect
- # results concerning whether the interface carrier is detected.
- #if [ -z "${DHCP_TIMEOUT[$i]}" ]; then
- # /sbin/ip link set dev ${1} up && sleep 1
- # CONNSTATUS="$(cat /sys/class/net/${1}/carrier 2> /dev/null)"
- # /sbin/ip link set dev ${1} down
- # if [ "$CONNSTATUS" = "0" ]; then
- # # The kernel has just told us the cable isn't even plugged in, but we will
- # # give any DHCP server a short chance to reply anyway:
- # echo "No carrier detected on ${1}. Reducing DHCP timeout to 15 seconds."
- # DHCP_TIMEOUT[$i]=15
- # fi
- #fi
- #### (end commented out)
- # 15 seconds should be a reasonable default DHCP timeout. 30 was too much.
- echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -L -t ${DHCP_TIMEOUT[$i]:-15} ${DHCP_OPTIONS} ${1}" | $LOGGER
- /sbin/dhcpcd -L -t ${DHCP_TIMEOUT[$i]:-15} ${DHCP_OPTIONS} ${1}
- if [ "$?" == "0" ]; then # the dhcp call has succeeded
- if [ -n "${IPALIASES[$i]}" ]; then
- # Add extra IP addresses, if defined, to interface
- num=0
- for ipalias in ${IPALIASES[$i]}; do
- ip="${ipalias%/*}"
- nm="${ipalias#*/}"
- [ -z "$nm" ] || [ "$ip" == "$nm" ] && nm="32"
- /sbin/ip address add ${ip}/${nm} dev ${1} label ${1}:${num}
- num=$(($num + 1))
- done
- fi
- if [ "${PROMISCUOUS[$i]}" = "yes" ]; then
- # Set promiscuous mode on the interface
- /sbin/ip link set dev ${1} promisc on
- fi
- fi
- else # bring up interface using a static IP address
- if [ -n "${IPADDR[$i]}" ]; then # skip unconfigured interfaces
- # Set up the network card:
- echo "/etc/rc.d/rc.inet1: /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} broadcast + dev ${1}" | $LOGGER
- /sbin/ip address add ${IPADDR[$i]}/${NETMASK[$i]} broadcast + dev ${1}
- if /sbin/ip link show dev ${1} | grep -wq "state DOWN" ; then
- /sbin/ip link set dev ${1} up # Bring up interface
- fi
- # Add extra IP addresses, if defined, to interface
- if [ -n "${IPALIASES[$i]}" ]; then
- num=0
- for ipalias in ${IPALIASES[$i]}; do
- ip="${ipalias%/*}"
- nm="${ipalias#*/}"
- [ -z "$nm" ] || [ "$ip" == "$nm" ] && nm="32"
- /sbin/ip address add ${ip}/${nm} dev ${1} label ${1}:${num}
- num=$(($num + 1))
- done
- fi
- if [ "${PROMISCUOUS[$i]}" = "yes" ]; then
- # Set promiscuous mode on the interface
- /sbin/ip link set dev ${1} promisc on
- fi
- else
- debug_log "${1} interface is not configured in /etc/rc.d/rc.inet1.conf"
- fi
- fi
- else
- debug_log "${1} is already up, skipping"
- fi
- else
- debug_log "${1} interface does not exist (yet)"
- fi
-}
-
-# Function to take down a network interface:
-if_down() {
- # Determine position 'i' of this interface in the IFNAME array:
- i=0
- while [ $i -lt $MAXNICS ]; do
- [ "${IFNAME[$i]}" = "${1}" ] && break
- i=$(($i+1))
- done
- if [ $i -ge $MAXNICS ]; then
- echo "/etc/rc.d/rc.inet1: skipping ${1}, you might need to increase MAXNICS" | $LOGGER
- return
- fi
- if [ -e /sys/class/net/${1%%:*} ]; then
- if [ "${USE_DHCP[$i]}" = "yes" ]; then
- echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -k -d ${1}" | $LOGGER
- /sbin/dhcpcd -k -d ${1} 2> /dev/null || /sbin/ip link set dev ${1} down
- sleep 1
- else
- echo "/etc/rc.d/rc.inet1: /sbin/ip link set dev ${1} down" | $LOGGER
- /sbin/ip link set dev ${1} down
- fi
- if [ -x /etc/rc.d/rc.wireless ]; then
- . /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any.
- fi
- # If the interface is a bridge, then destroy it now:
- if [ -n "${BRNICS[$i]}" ]; then
- br_close $i
- fi
- # Flush the address from the interface:
- ip address flush dev ${1}
- fi
-}
-
-#####################
-# GATEWAY FUNCTIONS #
-#####################
-
-# Function to bring up the gateway if there is not yet a default route:
-gateway_up() {
- if ! /sbin/ip route show | grep -wq default ; then
- if [ -n "$GATEWAY" ]; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip route add default via ${GATEWAY}" | $LOGGER
- /sbin/ip route add default via ${GATEWAY} | $LOGGER
- fi
- fi
-}
-
-# Function to take down an existing default gateway:
-gateway_down() {
- if /sbin/ip route show | grep -wq default ; then
- echo "/etc/rc.d/rc.inet1: /sbin/ip route del default" | $LOGGER
- /sbin/ip route del default
- fi
-}
-
-# Function to start the network:
-start() {
- lo_up
- virtif_create
- for i in "${IFNAME[@]}" ; do
- if_up $i
- done
- gateway_up
-}
-
-# Function to stop the network:
-stop() {
- gateway_down
- for i in "${IFNAME[@]}" ; do
- if_down $i
- done
- virtif_destroy
- lo_down
-}
-
-
-############
-### MAIN ###
-############
-
-case "$1" in
-start|up) # "start" (or "up") brings up all configured interfaces:
- start
- ;;
-stop|down) # "stop" (or "down") takes down all configured interfaces:
- stop
- ;;
-restart) # "restart" restarts the network:
- stop
- start
- ;;
-lo_start|lo_up) # Start the loopback interface:
- lo_up
- ;;
-lo_stop|lo_down) # Stop the loopback interface:
- lo_down
- ;;
-*_start|*_up) # Example: "eth1_start" (or "eth1_up") will start the specified interface 'eth1'
- INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1)
- if_up $INTERFACE
- gateway_up
- ;;
-*_stop|*_down) # Example: "eth0_stop" (or "eth0_down") will stop the specified interface 'eth0'
- INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1)
- if_down $INTERFACE
- ;;
-*_restart) # Example: "wlan0_restart" will take 'wlan0' down and up again
- INTERFACE=$(echo $1 | /bin/cut -d '_' -f 1)
- if_down $INTERFACE
- sleep 1
- if_up $INTERFACE
- gateway_up
- ;;
-*) # The default is to bring up all configured interfaces:
- start
-esac
-
-# End of /etc/rc.d/rc.inet1