diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2021-11-11 20:36:12 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2021-11-12 08:59:57 +0100 |
commit | 5f74398bf9e65ea1aa61c9a843a88f98700ccab7 (patch) | |
tree | bb5df74846116525f315ca070b70133df8cbfce8 /source/ap | |
parent | 53b8e9dd3942dcddfe065960ad276233e3e791a0 (diff) | |
download | current-5f74398bf9e65ea1aa61c9a843a88f98700ccab7.tar.gz |
Thu Nov 11 20:36:12 UTC 202120211111203612
a/sdparm-1.12-x86_64-2.txz: Rebuilt.
Recompiled against sg3_utils-1.47.
a/sysvinit-scripts-15.0-noarch-6.txz: Rebuilt.
rc.{6,S,M}: merged changes for compatibility with LXC containers.
a/udisks-1.0.5-x86_64-10.txz: Rebuilt.
Recompiled against sg3_utils-1.47.
ap/lxc-4.0.11-x86_64-1.txz: Upgraded.
Requires libseccomp-2.5.3.
No more local versions of rc.{6,S,M,inet1}: the regular versions work now.
l/elfutils-0.186-x86_64-1.txz: Upgraded.
l/libgpod-0.8.3-x86_64-11.txz: Rebuilt.
Recompiled against sg3_utils-1.47.
l/libseccomp-2.5.3-x86_64-1.txz: Added.
This is needed by lxc-4.0.11. Thanks to Willy Sudiarto Raharjo.
l/sg3_utils-1.47-x86_64-1.txz: Upgraded.
Shared library .so-version bump.
n/network-scripts-15.0-noarch-17.txz: Rebuilt.
Merged changes in rc.inet1 to make it compatible with LXC containers.
Patched netconfig to ensure the proper permissions on rc.networkmanager
when NetworkManager is not chosen.
x/ibus-1.5.25-x86_64-4.txz: Rebuilt.
[PATCH] client/gtk2/ibusimcontext: Fix wrong cursor location in gtk3 apps.
Thanks to Lockywolf.
Diffstat (limited to 'source/ap')
-rw-r--r-- | source/ap/lxc/lxc-slackware.in | 10 | ||||
-rwxr-xr-x | source/ap/lxc/lxc.SlackBuild | 6 | ||||
-rw-r--r-- | source/ap/lxc/lxc.url | 1 | ||||
-rw-r--r-- | source/ap/lxc/scripts/README | 11 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.6.lxc | 329 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.6.orig | 319 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.M.lxc | 416 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.M.orig | 407 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.S.lxc | 478 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.S.orig | 449 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.inet1.lxc | 387 | ||||
-rw-r--r-- | source/ap/lxc/scripts/rc.inet1.orig | 376 |
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 |