mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-03-05 22:04:48 +00:00
Rewrite bootscripts and Chaper 7
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9574 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
75fe59983c
commit
0cda8984a8
@ -1,21 +1,37 @@
|
||||
2011-05-31 DJ Lucas <dj@linuxfromscratch.org>
|
||||
2011-07-14 Bruce Dubbs <bdubbs@linuxfromscratch.org>
|
||||
* Major rewrite of all LFS scripts
|
||||
** Move ifup/ifdown to /sbin
|
||||
** Move functions and network services to /lib/boot
|
||||
** Remove contrib directory
|
||||
** Move all READ commands to functions and allow the user to specify
|
||||
HEADLESS=1 to skip READ commands
|
||||
** Add /etc/sysconfig/init_params for adding environmental parameters
|
||||
to all functions used in bootscripts
|
||||
** Move network configuration to /etc/sysconfig/ifconfig.*. The
|
||||
ifconfig files can have any extention. Use IFACE parameter to
|
||||
specify the target network interface within the configuration file.
|
||||
** Adds an optional parameter, SKIPTMPCLEAN, to skip the removal of
|
||||
files in /tmp at bootup. Specify the variable in
|
||||
/etc/sysconfig/init_params.
|
||||
|
||||
2011-05-31 DJ Lucas <dj@linuxfromscratch.org>
|
||||
* lfs/init.d/udev: Add multiple udev triggers for both subsystems and
|
||||
devices per upstream recommendation.
|
||||
|
||||
2011-04-19 Bruce Dubbs <bdubbs@linuxfromscratch.org>
|
||||
2011-04-19 Bruce Dubbs <bdubbs@linuxfromscratch.org>
|
||||
* lfs/init.d/mountvirtfs: Add creation of /run/{var,lock,shm}.
|
||||
* lfs/init.d/udev: Add /dev/shm -> /run/shm symlink.
|
||||
|
||||
2011-04-18 Bruce Dubbs <bdubbs@linuxfromscratch.org>
|
||||
2011-04-18 Bruce Dubbs <bdubbs@linuxfromscratch.org>
|
||||
* lfs/init.d/mountvirtfs: Change name from mountkernfs to mountvirtfs.
|
||||
Add mounting of /run filesystem.
|
||||
|
||||
2010-05-29 Matt Burgess <matthew@linuxfromscratch.org>
|
||||
2010-05-29 Matt Burgess <matthew@linuxfromscratch.org>
|
||||
* lfs/init.d/udev: Only copy /lib/udev/devices/null, as Udev >= 155 copies
|
||||
devices from /lib/udev/devices to /dev itself. Udevd still needs /dev/null
|
||||
present before starting up though.
|
||||
|
||||
2010-04-20 Bryan Kadzban <bryan@linuxfromscratch.org>
|
||||
2010-04-20 Bryan Kadzban <bryan@linuxfromscratch.org>
|
||||
* lfs/init.d/udev, lfs/init.d/udev_retry: Add --action=add, to handle udev
|
||||
version 152 and newer, which send "change" events by default in udevtrigger
|
||||
now.
|
||||
|
@ -1,29 +0,0 @@
|
||||
Copyright (c) 1999-2002, Gerard Beekmans
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions in any form must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Neither the name of "Linux From Scratch" nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this material without specific prior written permission.
|
||||
|
||||
* Any material derived from Linux From Scratch must contain a
|
||||
reference to the "Linux From Scratch" project.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
|
||||
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
@ -1,5 +1,6 @@
|
||||
ETCDIR=/etc
|
||||
EXTDIR=${DESTDIR}${ETCDIR}
|
||||
LIBDIR=${DESTDIR}/lib/boot
|
||||
MODE=754
|
||||
DIRMODE=755
|
||||
CONFMODE=644
|
||||
@ -17,14 +18,13 @@ create-dirs:
|
||||
install -d -m ${DIRMODE} ${EXTDIR}/rc.d/rcsysinit.d
|
||||
install -d -m ${DIRMODE} ${EXTDIR}/rc.d/init.d
|
||||
install -d -m ${DIRMODE} ${EXTDIR}/sysconfig
|
||||
install -d -m ${DIRMODE} ${LIBDIR}
|
||||
|
||||
create-service-dir:
|
||||
install -d -m ${DIRMODE} ${EXTDIR}/sysconfig/network-devices/services
|
||||
|
||||
install: create-dirs create-service-dir
|
||||
install: create-dirs
|
||||
install -m ${MODE} lfs/init.d/checkfs ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/cleanfs ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${CONFMODE} lfs/init.d/functions ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${CONFMODE} lfs/init.d/functions ${LIBDIR}
|
||||
install -m ${MODE} lfs/init.d/halt ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/console ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/consolelog ${EXTDIR}/rc.d/init.d/
|
||||
@ -37,31 +37,31 @@ install: create-dirs create-service-dir
|
||||
install -m ${MODE} lfs/init.d/reboot ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/sendsignals ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/setclock ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/sysklogd ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/sysklogd ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/swap ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/sysctl ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/template ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/udev ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/udev_retry ${EXTDIR}/rc.d/init.d/
|
||||
ln -sf ../init.d/network ${EXTDIR}/rc.d/rc0.d/K80network
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc0.d/K90sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc0.d/K90sysklogd
|
||||
ln -sf ../init.d/sendsignals ${EXTDIR}/rc.d/rc0.d/S60sendsignals
|
||||
ln -sf ../init.d/mountfs ${EXTDIR}/rc.d/rc0.d/S70mountfs
|
||||
ln -sf ../init.d/swap ${EXTDIR}/rc.d/rc0.d/S80swap
|
||||
ln -sf ../init.d/localnet ${EXTDIR}/rc.d/rc0.d/S90localnet
|
||||
ln -sf ../init.d/halt ${EXTDIR}/rc.d/rc0.d/S99halt
|
||||
ln -sf ../init.d/network ${EXTDIR}/rc.d/rc1.d/K80network
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc1.d/K90sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc1.d/K90sysklogd
|
||||
ln -sf ../init.d/network ${EXTDIR}/rc.d/rc2.d/K80network
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc2.d/K90sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc3.d/S10sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc2.d/K90sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc3.d/S10sysklogd
|
||||
ln -sf ../init.d/network ${EXTDIR}/rc.d/rc3.d/S20network
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc4.d/S10sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc4.d/S10sysklogd
|
||||
ln -sf ../init.d/network ${EXTDIR}/rc.d/rc4.d/S20network
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc5.d/S10sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc5.d/S10sysklogd
|
||||
ln -sf ../init.d/network ${EXTDIR}/rc.d/rc5.d/S20network
|
||||
ln -sf ../init.d/network ${EXTDIR}/rc.d/rc6.d/K80network
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc6.d/K90sysklogd
|
||||
ln -sf ../init.d/sysklogd ${EXTDIR}/rc.d/rc6.d/K90sysklogd
|
||||
ln -sf ../init.d/sendsignals ${EXTDIR}/rc.d/rc6.d/S60sendsignals
|
||||
ln -sf ../init.d/mountfs ${EXTDIR}/rc.d/rc6.d/S70mountfs
|
||||
ln -sf ../init.d/swap ${EXTDIR}/rc.d/rc6.d/S80swap
|
||||
@ -79,28 +79,29 @@ install: create-dirs create-service-dir
|
||||
ln -sf ../init.d/console ${EXTDIR}/rc.d/rcsysinit.d/S70console
|
||||
ln -sf ../init.d/localnet ${EXTDIR}/rc.d/rcsysinit.d/S80localnet
|
||||
ln -sf ../init.d/sysctl ${EXTDIR}/rc.d/rcsysinit.d/S90sysctl
|
||||
if [ ! -f ${EXTDIR}/sysconfig/createfiles ]; then install -m ${CONFMODE} lfs/sysconfig/createfiles ${EXTDIR}/sysconfig/; fi
|
||||
if [ ! -f ${EXTDIR}/sysconfig/modules ]; then install -m ${CONFMODE} lfs/sysconfig/modules ${EXTDIR}/sysconfig/; fi
|
||||
if [ ! -f ${EXTDIR}/sysconfig/rc ]; then install -m ${CONFMODE} lfs/sysconfig/rc ${EXTDIR}/sysconfig/; fi
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/ifup ${EXTDIR}/sysconfig/network-devices/
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/ifdown ${EXTDIR}/sysconfig/network-devices/
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/services/ipv4-static ${EXTDIR}/sysconfig/network-devices/services/
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/services/ipv4-static-route ${EXTDIR}/sysconfig/network-devices/services/
|
||||
if [ ! -f ${EXTDIR}/sysconfig/createfiles ]; then \
|
||||
install -m ${CONFMODE} lfs/sysconfig/createfiles ${EXTDIR}/sysconfig/ ;\
|
||||
fi
|
||||
if [ ! -f ${EXTDIR}/sysconfig/modules ]; then \
|
||||
install -m ${CONFMODE} lfs/sysconfig/modules ${EXTDIR}/sysconfig/ ;\
|
||||
fi
|
||||
if [ ! -f ${EXTDIR}/sysconfig/rc ]; then \
|
||||
install -m ${CONFMODE} lfs/sysconfig/rc ${EXTDIR}/sysconfig/ ;\
|
||||
fi
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/ifup /sbin
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/ifdown /sbin
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/services/ipv4-static ${LIBDIR}
|
||||
install -m ${MODE} lfs/sysconfig/network-devices/services/ipv4-static-route ${LIBDIR}
|
||||
|
||||
install-consolelog: create-dirs
|
||||
install -m ${MODE} contrib/init.d/consolelog ${EXTDIR}/rc.d/init.d
|
||||
ln -sf ../init.d/consolelog ${EXTDIR}/rc.d/rcsysinit.d/S00consolelog
|
||||
|
||||
install-lsb-compliant:
|
||||
make -C contrib/lsb
|
||||
|
||||
install-service-mtu: create-service-dir
|
||||
install -m ${MODE} contrib/sysconfig/network-devices/services/mtu ${EXTDIR}/sysconfig/network-devices/services
|
||||
|
||||
minimal: create-dirs create-service-dir
|
||||
minimal: create-dirs
|
||||
install -m ${MODE} lfs/init.d/checkfs ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/cleanfs ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${CONFMODE} lfs/init.d/functions ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${CONFMODE} lfs/init.d/functions ${LIBDIR}
|
||||
install -m ${MODE} lfs/init.d/halt ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/localnet ${EXTDIR}/rc.d/init.d/
|
||||
install -m ${MODE} lfs/init.d/mountfs ${EXTDIR}/rc.d/init.d/
|
||||
@ -125,8 +126,9 @@ minimal: create-dirs create-service-dir
|
||||
ln -sf ../init.d/checkfs ${EXTDIR}/rc.d/rcsysinit.d/S30checkfs
|
||||
ln -sf ../init.d/mountfs ${EXTDIR}/rc.d/rcsysinit.d/S40mountfs
|
||||
ln -sf ../init.d/cleanfs ${EXTDIR}/rc.d/rcsysinit.d/S45cleanfs
|
||||
if [ ! -f ${EXTDIR}/sysconfig/rc ]; then install -m ${CONFMODE} lfs/sysconfig/rc ${EXTDIR}/sysconfig/; fi
|
||||
if [ ! -f ${EXTDIR}/sysconfig/rc ]; then \
|
||||
install -m ${CONFMODE} lfs/sysconfig/rc ${EXTDIR}/sysconfig/; \
|
||||
fi
|
||||
|
||||
.PHONY: all create-dirs create-service-dir \
|
||||
install install-service-mtu
|
||||
.PHONY: all create-dirs install
|
||||
|
||||
|
@ -1,76 +1,79 @@
|
||||
Network Configuration:
|
||||
Script Files:
|
||||
rc.d/init.d/network
|
||||
sysconfig/network-devices/ifup
|
||||
sysconfig/network-devices/ifdown
|
||||
sysconfig/network-devices/services/*
|
||||
Script Files:
|
||||
/etc/rc.d/init.d/network
|
||||
/sbin/ifup
|
||||
/sbin/ifdown
|
||||
/lib/boot/*/*
|
||||
|
||||
Configuration Files:
|
||||
sysconfig/network-devices/ifconfig.*/*
|
||||
Note: ifconfig.* could be either a file or directory,
|
||||
but the filename extension must be the same name
|
||||
as the network interface you wish it to belong to.
|
||||
The files within the directory will be processed
|
||||
in alphanumerical order on boot, and reversed on
|
||||
shutdown.
|
||||
- SERVICE: which script to run in services directory.
|
||||
- ONBOOT: if set to yes, this interface will be started on
|
||||
bootup, and stopped on shutdown
|
||||
Configuration Files:
|
||||
/etc/sysconfig/ifconfig.*
|
||||
Note: ifconfig.* could be either a file or directory,
|
||||
but the filename extension must be the same name
|
||||
as the network interface you wish it to belong to.
|
||||
The files within the directory will be processed
|
||||
in alphanumerical order on boot, and reversed on
|
||||
shutdown.
|
||||
- IFACE: the interface that is being configured (e.g. eth0)
|
||||
- SERVICE: which script to run in services directory.
|
||||
- ONBOOT: if set to yes, this interface will be started on
|
||||
bootup, and stopped on shutdown
|
||||
|
||||
sysconfig/network
|
||||
- HOSTNAME: Value of the system's hostname
|
||||
/etc/sysconfig/network
|
||||
- HOSTNAME: Value of the system's hostname
|
||||
|
||||
Additional Configuration:
|
||||
sysconfig/network-devices/ifconfig.*
|
||||
ipv4-static:
|
||||
- IP: static IP Address
|
||||
- GATEWAY: Specifies the IP Address of the gateway server
|
||||
- PREFIX: CIDR prefix of IP Address, defaults to 24 if not set
|
||||
- PEER: IP Address of peer (for point-to-point connections and tunnels)
|
||||
- BROADCAST: broadcast address
|
||||
ipv4-static-route:
|
||||
- TYPE: network (default type if not specified), default, host or
|
||||
unreachable
|
||||
- IP: IP Address of target (for network, host and unreachable)
|
||||
- PREFIX: CIDR prefix of target (for network, host and unreachable)
|
||||
- GATEWAY: IP Address of gateway to reach target (for network and default)
|
||||
Additional Configuration:
|
||||
ipv4-static:
|
||||
- IP: static IP Address
|
||||
- GATEWAY: Specifies the IP Address of the gateway server
|
||||
- PREFIX: CIDR prefix of IP Address, defaults to 24 if not set
|
||||
- PEER: IP Address of peer (for point-to-point connections and tunnels)
|
||||
- BROADCAST: broadcast address
|
||||
|
||||
ipv4-static-route:
|
||||
- TYPE: network (default type if not specified), default, host or
|
||||
unreachable
|
||||
- IP: IP Address of target (for network, host and unreachable)
|
||||
- PREFIX: CIDR prefix of target (for network, host and unreachable)
|
||||
- GATEWAY: IP Address of gateway to reach target (for network and default)
|
||||
|
||||
|
||||
SetClock configuration:
|
||||
Script Files:
|
||||
rc.d/init.d/setclock
|
||||
Script Files:
|
||||
/etc/rc.d/init.d/setclock
|
||||
- SKIPTMPCLEAN: skips cleaning of /tmp directory
|
||||
|
||||
Configuration Files:
|
||||
sysconfig/clock
|
||||
- UTC: 1 assumes hwclock is in UTC
|
||||
0 assumes hwclock is in local time
|
||||
- CLOCKPARAMS: any additional options to be passed to hwclock
|
||||
Configuration Files:
|
||||
/etc/sysconfig/clock
|
||||
- UTC: 1 assumes hwclock is in UTC
|
||||
0 assumes hwclock is in local time
|
||||
- CLOCKPARAMS: any additional options to be passed to hwclock
|
||||
|
||||
CleanFS configuration:
|
||||
Script Files:
|
||||
rc.d/init.d/cleanfs
|
||||
Script Files:
|
||||
/etc/rc.d/init.d/cleanfs
|
||||
|
||||
Configuration Files:
|
||||
/etc/sysconfig/createfiles
|
||||
Each line is parsed, using space as a deliminator.
|
||||
[NAME] [TYPE] [PERMISSIONS] [USER] [GROUP]
|
||||
The below fields are currently only used on dev type.
|
||||
([DEV TYPE] [MAJOR#] [MINOR#])
|
||||
Name:
|
||||
File/Directory/Device name
|
||||
Type:
|
||||
dir: creates a directory
|
||||
file: creates a file
|
||||
dev: creates a device
|
||||
Permissions:
|
||||
chmod the created file
|
||||
User/Group:
|
||||
chown the created file/dir to this user/group
|
||||
Dev Type:
|
||||
char: character [needs MAJOR#, MINOR#]
|
||||
block: block [needs MAJOR#, MINOR#]
|
||||
pipe: pipe
|
||||
Major#:
|
||||
Used by character and block devices.
|
||||
Minor#:
|
||||
Used by character and block devices.
|
||||
|
||||
Configuration Files:
|
||||
/etc/sysconfig/createfiles
|
||||
Each line is parsed, using space as a deliminator.
|
||||
[NAME] [TYPE] [PERMISSIONS] [USER] [GROUP]
|
||||
The below fields are currently only used on dev type.
|
||||
([DEV TYPE] [MAJOR#] [MINOR#])
|
||||
Name:
|
||||
File/Directory/Device name
|
||||
Type:
|
||||
dir: creates a directory
|
||||
file: creates a file
|
||||
dev: creates a device
|
||||
Permissions:
|
||||
chmod the created file
|
||||
User/Group:
|
||||
chown the created file/dir to this user/group
|
||||
Dev Type:
|
||||
char: character [needs MAJOR#, MINOR#]
|
||||
block: block [needs MAJOR#, MINOR#]
|
||||
pipe: pipe
|
||||
Major#:
|
||||
Used by character and block devices.
|
||||
Minor#:
|
||||
Used by character and block devices.
|
||||
|
@ -1,11 +0,0 @@
|
||||
ETCDIR=/etc
|
||||
EXTDIR=${DESTDIR}${ETCDIR}
|
||||
MODE=754
|
||||
DIRMODE=755
|
||||
CONFMODE=644
|
||||
|
||||
install:
|
||||
install -d -m ${DIRMODE} ${DESTDIR}/lib/lsb
|
||||
install -m ${CONFMODE} lib/init-functions ${DESTDIR}/lib/lsb
|
||||
|
||||
.PHONY: install
|
@ -1,348 +0,0 @@
|
||||
|
||||
#*******************************************************************************
|
||||
# Function - start_daemon [-f] [-n nicelevel] [-p pidfile] pathname [args]
|
||||
#
|
||||
# Purpose: This runs the specified program as a daemon
|
||||
#
|
||||
# Inputs: -f, run the program even if it is already running
|
||||
# -n nicelevel, specifies a nice level. See nice(1).
|
||||
# -p pidfile, uses the specified pidfile
|
||||
# pathname, pathname to the specified program
|
||||
# args, arguments to pass to specified program
|
||||
#
|
||||
# Outputs: return 0 - Success
|
||||
# return 2 - Invalid or excessive number of arguments,
|
||||
# warning in stdout
|
||||
# return 4 - Program or service status is unknown
|
||||
#
|
||||
# Dependencies: nice
|
||||
#
|
||||
# Todo: none
|
||||
#
|
||||
#*******************************************************************************
|
||||
start_daemon()
|
||||
{
|
||||
local pidfile=""
|
||||
local forcestart=""
|
||||
local nicelevel="0"
|
||||
|
||||
while true
|
||||
do
|
||||
case "${1}" in
|
||||
-f)
|
||||
forcestart="1"
|
||||
shift 1
|
||||
;;
|
||||
-n)
|
||||
nicelevel="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-p)
|
||||
pidfile="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-*)
|
||||
log_failure_msg "Unknown Option: ${1}"
|
||||
return 2
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "${forcestart}" ]; then
|
||||
if [ -z "${pidfile}" ]; then
|
||||
pidofproc "${1}" > /dev/null
|
||||
else
|
||||
pidofproc -p "${pidfile}" "${1}" > /dev/null
|
||||
fi
|
||||
|
||||
case "${?}" in
|
||||
0)
|
||||
log_warning_msg "Unable to continue: ${1} is running"
|
||||
return 4
|
||||
;;
|
||||
1)
|
||||
log_warning_msg "Unable to continue: ${pidfile} exists"
|
||||
return 4
|
||||
;;
|
||||
3)
|
||||
;;
|
||||
*)
|
||||
log_failure_msg "Unknown error code from pidofproc: ${?}"
|
||||
return 4
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
nice -n "${nicelevel}" "${@}"
|
||||
}
|
||||
|
||||
#*******************************************************************************
|
||||
# Function - killproc [-p pidfile] pathname [signal]
|
||||
#
|
||||
# Purpose:
|
||||
#
|
||||
# Inputs: -p pidfile, uses the specified pidfile
|
||||
# pathname, pathname to the specified program
|
||||
# signal, send this signal to pathname
|
||||
#
|
||||
# Outputs: return 0 - Success
|
||||
# return 1 - Invalid or excessive number of arguments,
|
||||
# warning in stdout
|
||||
# return 4 - Unknown Status
|
||||
#
|
||||
# Dependencies: kill
|
||||
#
|
||||
# Todo: test
|
||||
#
|
||||
#*******************************************************************************
|
||||
killproc()
|
||||
{
|
||||
local pidfile=""
|
||||
local killsig=""
|
||||
local pidlist=""
|
||||
while true
|
||||
do
|
||||
case "${1}" in
|
||||
-p)
|
||||
pidfile="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-*)
|
||||
log_failure_msg "Unknown Option: ${1}"
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "${#}" = "2" ]; then
|
||||
killsig="${2}"
|
||||
elif [ "${#}" != "1" ]; then
|
||||
shift 2
|
||||
log_failure_msg "Excess Arguments: $@"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ -z "${pidfile}" ]; then
|
||||
pidlist=`pidofproc "${1}"`
|
||||
else
|
||||
pidlist=`pidofproc -p "${pidfile}" "${1}"`
|
||||
fi
|
||||
|
||||
for pid in ${pidlist}
|
||||
do
|
||||
kill -${killsig:-TERM} ${pid} 2> /dev/null
|
||||
if [ -z "${killsig}" ]; then
|
||||
# Wait up to 3 seconds, for ${pid} to terminate
|
||||
local dtime=3
|
||||
while [ "${dtime}" != "0" ]
|
||||
do
|
||||
kill -0 ${pid} 2> /dev/null || break
|
||||
sleep 1
|
||||
dtime=$(( ${dtime} - 1))
|
||||
done
|
||||
# If ${pid} is still running, kill it
|
||||
kill -0 ${pid} 2> /dev/null && kill -KILL ${pid} 2> /dev/null
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "${killsig}" ]; then
|
||||
pidofproc "${1}" 2>&1 > /dev/null
|
||||
|
||||
# Program was terminated
|
||||
if [ "$?" != "0" ]; then
|
||||
# Pidfile Exists
|
||||
if [ -f "${pidfile}" ]; then
|
||||
rm -f "${pidfile}" 2>&1 > /dev/null
|
||||
fi
|
||||
return 0
|
||||
else # Program is still running
|
||||
return 4 # Unknown Status
|
||||
fi
|
||||
else
|
||||
if [ -z "${pidfile}" ]; then
|
||||
pidofproc "${1}" 2> /dev/null
|
||||
else
|
||||
pidofproc -p "${pidfile}" "${1}" 2> /dev/null
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
#*******************************************************************************
|
||||
# Function - pidofproc [-p pidfile] pathname
|
||||
#
|
||||
# Purpose: This function returns one or more pid(s) for a particular daemon
|
||||
#
|
||||
# Inputs: -p pidfile, use the specified pidfile instead of pidof
|
||||
# pathname, path to the specified program
|
||||
#
|
||||
# Outputs: return 0 - Success, pid's in stdout
|
||||
# return 1 - Invalid or excessive number of arguments,
|
||||
# warning in stdout
|
||||
# return 1 - Program is dead, pidfile exists
|
||||
# return 3 - Program is not running
|
||||
#
|
||||
# Dependencies: pidof, echo
|
||||
#
|
||||
# Todo: - Invalid or excessive argments, and program is dead pidfile exists
|
||||
# conflict with eachother
|
||||
#
|
||||
#*******************************************************************************
|
||||
pidofproc()
|
||||
{
|
||||
local pidfile=""
|
||||
local lpids=""
|
||||
local pidlist=""
|
||||
while true
|
||||
do
|
||||
case "${1}" in
|
||||
-p)
|
||||
pidfile="${2}"
|
||||
shift 2
|
||||
;;
|
||||
-*)
|
||||
log_failure_msg "Unknown Option: ${1}"
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "${#}" != "1" ]; then
|
||||
shift 1
|
||||
log_failure_msg "Excess Arguments: $@"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ -n "${pidfile}" ]; then
|
||||
if [ ! -r "${pidfile}" ]; then
|
||||
return 3 # Program is not running
|
||||
fi
|
||||
|
||||
lpids=`head -n 1 ${pidfile}`
|
||||
for pid in ${lpids}
|
||||
do
|
||||
if [ "${pid}" -ne "$$" -a "${pid}" -ne "${PPID}" ]; then
|
||||
kill -0 "${pid}" 2> /dev/null &&
|
||||
pidlist="${pidlist} ${pid}"
|
||||
fi
|
||||
echo ${pidlist}
|
||||
test -z "${pidlist}" && return 1 # Program is dead, pidfile exists
|
||||
return 0
|
||||
done
|
||||
|
||||
else
|
||||
pidof "${1}"
|
||||
fi
|
||||
|
||||
if [ "$?" != "0" ]; then
|
||||
return 3 # Program is not running
|
||||
fi
|
||||
}
|
||||
|
||||
# Screen Dimentions
|
||||
if [ -z "${COLUMNS}" ]; then
|
||||
COLUMNS=$(stty size)
|
||||
COLUMNS=${COLUMNS##* }
|
||||
fi
|
||||
|
||||
# When using remote connections, such as a serial port, stty size returns 0
|
||||
if [ "${COLUMNS}" = "0" ]; then
|
||||
COLUMNS=80
|
||||
fi
|
||||
|
||||
# Measurements for positioning result messages
|
||||
COL=$((${COLUMNS} - 8))
|
||||
WCOL=$((${COL} - 2))
|
||||
|
||||
# Set Cursur Position Commands, used via echo -e
|
||||
SET_COL="\\033[${COL}G" # at the $COL char
|
||||
SET_WCOL="\\033[${WCOL}G" # at the $WCOL char
|
||||
CURS_UP="\\033[1A\\033[0G" # Up one line, at the 0'th char
|
||||
|
||||
# Set color commands, used via echo -e
|
||||
# Please consult `man console_codes` for more information
|
||||
# under the "Set Graphics Resolution" section
|
||||
#
|
||||
# Warning, when switching from a 8bit to a 9bit font,
|
||||
# the linux console will reinterpret the bold (1;) to
|
||||
# the top 256 glyphs of the 9bit font. This does
|
||||
# not affect framebuffer consoles
|
||||
NORMAL="\\033[0;39m" # Standard console grey
|
||||
SUCCESS="\\033[1;32m" # Success is green
|
||||
WARNING="\\033[1;33m" # Warnings are yellow
|
||||
FAILURE="\\033[1;31m" # Failures are red
|
||||
INFO="\\033[1;36m" # Information is light cyan
|
||||
BRACKET="\\033[1;34m" # Brackets are blue
|
||||
|
||||
BOOTMESG_PREFIX=" * " # Text at the beginning of every line
|
||||
|
||||
|
||||
#*******************************************************************************
|
||||
# Function - log_success_msg "message"
|
||||
#
|
||||
# Purpose: Print a success message
|
||||
#
|
||||
# Inputs:
|
||||
#
|
||||
# Outputs:
|
||||
#
|
||||
# Dependencies: echo
|
||||
#
|
||||
# Todo: logging
|
||||
#
|
||||
#*******************************************************************************
|
||||
log_success_msg()
|
||||
{
|
||||
echo -n -e "${BOOTMESG_PREFIX}${@}"
|
||||
echo -e "${SET_COL}""${BRACKET}""[""${SUCCESS}"" OK ""${BRACKET}""]""${NORMAL}"
|
||||
return 0
|
||||
}
|
||||
|
||||
#*******************************************************************************
|
||||
# Function - log_failure_msg "message"
|
||||
#
|
||||
# Purpose: Print a failure message
|
||||
#
|
||||
# Inputs: $@ - Message
|
||||
#
|
||||
# Outputs: Text output to screen
|
||||
#
|
||||
# Dependencies: echo
|
||||
#
|
||||
# Todo: logging
|
||||
#
|
||||
#*******************************************************************************
|
||||
log_failure_msg() {
|
||||
echo -n -e "${BOOTMESG_PREFIX}${@}"
|
||||
echo -e "${SET_COL}""${BRACKET}""[""${FAILURE}"" FAIL ""${BRACKET}""]""${NORMAL}"
|
||||
return 0
|
||||
}
|
||||
|
||||
#*******************************************************************************
|
||||
# Function - log_warning_msg "message"
|
||||
#
|
||||
# Purpose: print a warning message
|
||||
#
|
||||
# Inputs: $@ - Message
|
||||
#
|
||||
# Outputs: Text output to screen
|
||||
#
|
||||
# Dependencies: echo
|
||||
#
|
||||
# Todo: logging
|
||||
#
|
||||
#*******************************************************************************
|
||||
log_warning_msg() {
|
||||
echo -n -e "${BOOTMESG_PREFIX}${@}"
|
||||
echo -e "${SET_COL}""${BRACKET}""[""${WARNING}"" WARN ""${BRACKET}""]""${NORMAL}"
|
||||
return 0
|
||||
}
|
||||
|
@ -1,45 +0,0 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $network_devices/services/mtu
|
||||
#
|
||||
# Description : Sets MTU per interface
|
||||
#
|
||||
# Authors : Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Jim Gifford - jim@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes : This sets the maximum amount of bytes that can be
|
||||
# transmitted within a packet. By default, this
|
||||
# value is set to 1500.
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. ${IFCONFIG}
|
||||
|
||||
if [ -z "${MTU}" ]
|
||||
then
|
||||
boot_mesg "MTU variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "${2}" in
|
||||
up)
|
||||
boot_mesg "Setting the MTU for ${1} to ${MTU}..."
|
||||
echo "${MTU}" > "/sys/class/net/${1}/mtu"
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
down)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} [interface] {up|down}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $network_devices/services/mtu
|
@ -1,15 +1,14 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/checkfs
|
||||
# Begin checkfs
|
||||
#
|
||||
# Description : File System Check
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# A. Luebke - luebke@users.sourceforge.net
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
# Based on checkfs script from LFS-3.1 and earlier.
|
||||
#
|
||||
@ -25,107 +24,119 @@
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: checkfs
|
||||
# Required-Start: udev swap $time
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Checks local filesystems before mounting.
|
||||
# Description: Checks local filesystmes before mounting.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
if [ -f /fastboot ]; then
|
||||
boot_mesg -n "/fastboot found, will not perform" ${INFO}
|
||||
boot_mesg " file system checks as requested."
|
||||
echo_ok
|
||||
exit 0
|
||||
fi
|
||||
start)
|
||||
if [ -f /fastboot ]; then
|
||||
boot_mesg -n "/fastboot found, will not perform" ${INFO}
|
||||
boot_mesg " file system checks as requested."
|
||||
echo_ok
|
||||
exit 0
|
||||
fi
|
||||
|
||||
boot_mesg "Mounting root file system in read-only mode..."
|
||||
mount -n -o remount,ro / >/dev/null
|
||||
evaluate_retval
|
||||
boot_mesg "Mounting root file system in read-only mode..."
|
||||
mount -n -o remount,ro / >/dev/null
|
||||
evaluate_retval
|
||||
|
||||
if [ ${?} != 0 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nCannot check root" ${FAILURE}
|
||||
boot_mesg -n " filesystem because it could not be mounted"
|
||||
boot_mesg -n " in read-only mode.\n\nAfter you"
|
||||
boot_mesg -n " press Enter, this system will be"
|
||||
boot_mesg -n " halted and powered off."
|
||||
boot_mesg -n "\n\nPress enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
read ENTER
|
||||
${rc_base}/init.d/halt stop
|
||||
fi
|
||||
if [ ${?} != 0 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nCannot check root" ${FAILURE}
|
||||
boot_mesg -n " filesystem because it could not be mounted"
|
||||
boot_mesg -n " in read-only mode.\n\nAfter you"
|
||||
boot_mesg -n " press Enter, this system will be"
|
||||
boot_mesg -n " halted and powered off."
|
||||
boot_mesg -n "\n\nPress enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
wait_for_user
|
||||
/etc/rc.d/init.d/halt stop
|
||||
fi
|
||||
|
||||
if [ -f /forcefsck ]; then
|
||||
boot_mesg -n "/forcefsck found, forcing file" ${INFO}
|
||||
boot_mesg " system checks as requested."
|
||||
echo_ok
|
||||
options="-f"
|
||||
else
|
||||
options=""
|
||||
fi
|
||||
if [ -f /forcefsck ]; then
|
||||
boot_mesg -n "/forcefsck found, forcing file" ${INFO}
|
||||
boot_mesg " system checks as requested."
|
||||
echo_ok
|
||||
options="-f"
|
||||
else
|
||||
options=""
|
||||
fi
|
||||
|
||||
boot_mesg "Checking file systems..."
|
||||
# Note: -a option used to be -p; but this fails e.g.
|
||||
# on fsck.minix
|
||||
fsck ${options} -a -A -C -T
|
||||
error_value=${?}
|
||||
boot_mesg "Checking file systems..."
|
||||
# Note: -a option used to be -p; but this fails e.g.
|
||||
# on fsck.minix
|
||||
fsck ${options} -a -A -C -T
|
||||
error_value=${?}
|
||||
|
||||
if [ "${error_value}" = 0 ]; then
|
||||
echo_ok
|
||||
fi
|
||||
if [ "${error_value}" = 0 ]; then
|
||||
echo_ok
|
||||
fi
|
||||
|
||||
if [ "${error_value}" = 1 ]; then
|
||||
echo_warning
|
||||
boot_mesg -n "WARNING:\n\nFile system errors" ${WARNING}
|
||||
boot_mesg -n " were found and have been corrected."
|
||||
boot_mesg -n " You may want to double-check that"
|
||||
boot_mesg -n " everything was fixed properly."
|
||||
boot_mesg "" ${NORMAL}
|
||||
fi
|
||||
if [ "${error_value}" = 1 ]; then
|
||||
echo_warning
|
||||
boot_mesg -n "WARNING:\n\nFile system errors" ${WARNING}
|
||||
boot_mesg -n " were found and have been corrected. "
|
||||
boot_mesg -n " You may want to double-check that"
|
||||
boot_mesg -n " everything was fixed properly."
|
||||
boot_mesg "" ${NORMAL}
|
||||
fi
|
||||
|
||||
if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then
|
||||
echo_warning
|
||||
boot_mesg -n "WARNING:\n\nFile system errors" ${WARNING}
|
||||
boot_mesg -n " were found and have been been"
|
||||
boot_mesg -n " corrected, but the nature of the"
|
||||
boot_mesg -n " errors require this system to be"
|
||||
boot_mesg -n " rebooted.\n\nAfter you press enter,"
|
||||
boot_mesg -n " this system will be rebooted"
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
read ENTER
|
||||
reboot -f
|
||||
fi
|
||||
if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then
|
||||
echo_warning
|
||||
boot_mesg -n "WARNING:\n\nFile system errors" ${WARNING}
|
||||
boot_mesg -n " were found and have been been"
|
||||
boot_mesg -n " corrected, but the nature of the"
|
||||
boot_mesg -n " errors require this system to be"
|
||||
boot_mesg -n " rebooted.\n\nAfter you press enter,"
|
||||
boot_mesg -n " this system will be rebooted"
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
wait_for_user
|
||||
reboot -f
|
||||
fi
|
||||
|
||||
if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nFile system errors" ${FAILURE}
|
||||
boot_mesg -n " were encountered that could not be"
|
||||
boot_mesg -n " fixed automatically. This system"
|
||||
boot_mesg -n " cannot continue to boot and will"
|
||||
boot_mesg -n " therefore be halted until those"
|
||||
boot_mesg -n " errors are fixed manually by a"
|
||||
boot_mesg -n " System Administrator.\n\nAfter you"
|
||||
boot_mesg -n " press Enter, this system will be"
|
||||
boot_mesg -n " halted and powered off."
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
read ENTER
|
||||
${rc_base}/init.d/halt stop
|
||||
fi
|
||||
if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nFile system errors" ${FAILURE}
|
||||
boot_mesg -n " were encountered that could not be"
|
||||
boot_mesg -n " fixed automatically. This system"
|
||||
boot_mesg -n " cannot continue to boot and will"
|
||||
boot_mesg -n " therefore be halted until those"
|
||||
boot_mesg -n " errors are fixed manually by a"
|
||||
boot_mesg -n " System Administrator.\n\nAfter you"
|
||||
boot_mesg -n " press Enter, this system will be"
|
||||
boot_mesg -n " halted and powered off."
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
wait_for_user
|
||||
/etc/rc.d/init.d/halt stop
|
||||
fi
|
||||
|
||||
if [ "${error_value}" -ge 16 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nUnexpected Failure" ${FAILURE}
|
||||
boot_mesg -n " running fsck. Exited with error"
|
||||
boot_mesg -n " code: ${error_value}."
|
||||
boot_mesg "" ${NORMAL}
|
||||
exit ${error_value}
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
if [ "${error_value}" -ge 16 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nUnexpected Failure" ${FAILURE}
|
||||
boot_mesg -n " running fsck. Exited with error"
|
||||
boot_mesg -n " code: ${error_value}."
|
||||
boot_mesg "" ${NORMAL}
|
||||
exit ${error_value}
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/checkfs
|
||||
# End checkfs
|
||||
|
@ -1,19 +1,32 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/cleanfs
|
||||
# Begin cleanfs
|
||||
#
|
||||
# Description : Clean file system
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: cleanfs
|
||||
# Required-Start: $local_fs
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Cleans temporary directories early in the boot process.
|
||||
# Description: Cleans temporary directories /var/run, /var/lock, and
|
||||
# optionally) /tmp. cleanfs also creates /var/run/utmp
|
||||
# and any files defined in /etc/sysconfig/createfiles.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
# Function to create files/directory on boot.
|
||||
create_files() {
|
||||
@ -21,7 +34,6 @@ create_files() {
|
||||
exec 9>&0 < /etc/sysconfig/createfiles
|
||||
while read name type perm usr grp dtype maj min junk
|
||||
do
|
||||
|
||||
# Ignore comments and blank lines.
|
||||
case "${name}" in
|
||||
""|\#*) continue ;;
|
||||
@ -73,10 +85,11 @@ case "${1}" in
|
||||
start)
|
||||
boot_mesg -n "Cleaning file systems:" ${INFO}
|
||||
|
||||
boot_mesg -n " /tmp" ${NORMAL}
|
||||
cd /tmp &&
|
||||
find . -xdev -mindepth 1 ! -name lost+found \
|
||||
-delete || failed=1
|
||||
if [ "${SKIPTMPCLEAN}" = "" ]; then
|
||||
boot_mesg -n " /tmp" ${NORMAL}
|
||||
cd /tmp &&
|
||||
find . -xdev -mindepth 1 ! -name lost+found -delete || failed=1
|
||||
fi
|
||||
|
||||
> /var/run/utmp
|
||||
|
||||
@ -100,4 +113,4 @@ case "${1}" in
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/cleanfs
|
||||
# End cleanfs
|
||||
|
@ -1,96 +1,107 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/console
|
||||
# Begin console
|
||||
#
|
||||
# Description : Sets keymap and screen font
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Alexander E. Patrakov
|
||||
# Alexander E. Patrakov
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.03
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /lib/boot/functions
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: console
|
||||
# Required-Start:
|
||||
# Should-Start: $local_fs
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Sets up a localised console.
|
||||
# Description: Sets up fonts and language settings for the user's
|
||||
# local as defined by /etc/sysconfig/console.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
# Native English speakers probably don't have /etc/sysconfig/console at all
|
||||
if [ -f /etc/sysconfig/console ]
|
||||
then
|
||||
. /etc/sysconfig/console
|
||||
if [ -r /etc/sysconfig/console ]; then
|
||||
. /etc/sysconfig/console
|
||||
else
|
||||
exit 0
|
||||
exit 0
|
||||
fi
|
||||
|
||||
is_true() {
|
||||
[ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ]
|
||||
[ "$1" = "1" ] || [ "$1" = "yes" ] || [ "$1" = "true" ]
|
||||
}
|
||||
|
||||
failed=0
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Setting up Linux console..."
|
||||
# There should be no bogus failures below this line!
|
||||
|
||||
# Figure out if a framebuffer console is used
|
||||
[ -d /sys/class/graphics/fb0 ] && USE_FB=1 || USE_FB=0
|
||||
|
||||
# Figure out the command to set the console into the
|
||||
# desired mode
|
||||
is_true "${UNICODE}" &&
|
||||
MODE_COMMAND="${ECHO} -en '\033%G' && kbd_mode -u" ||
|
||||
MODE_COMMAND="${ECHO} -en '\033%@\033(K' && kbd_mode -a"
|
||||
|
||||
# On framebuffer consoles, font has to be set for each vt in
|
||||
# UTF-8 mode. This doesn't hurt in non-UTF-8 mode also.
|
||||
|
||||
! is_true "${USE_FB}" || [ -z "${FONT}" ] ||
|
||||
MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}"
|
||||
start)
|
||||
boot_mesg "Setting up Linux console..."
|
||||
# There should be no bogus failures below this line!
|
||||
|
||||
# Apply that command to all consoles mentioned in
|
||||
# /etc/inittab. Important: in the UTF-8 mode this should
|
||||
# happen before setfont, otherwise a kernel bug will
|
||||
# show up and the unicode map of the font will not be
|
||||
# used.
|
||||
# FIXME: Fedora Core also initializes two spare consoles
|
||||
# - do we want that?
|
||||
|
||||
for TTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab |
|
||||
grep -o '\btty[[:digit:]]*\b'`
|
||||
do
|
||||
openvt -f -w -c ${TTY#tty} -- \
|
||||
/bin/sh -c "${MODE_COMMAND}" || failed=1
|
||||
done
|
||||
# Figure out if a framebuffer console is used
|
||||
[ -d /sys/class/graphics/fb0 ] && USE_FB=1 || USE_FB=0
|
||||
|
||||
# Set the font (if not already set above) and the keymap
|
||||
is_true "${USE_FB}" || [ -z "${FONT}" ] ||
|
||||
setfont $FONT ||
|
||||
failed=1
|
||||
[ -z "${KEYMAP}" ] ||
|
||||
loadkeys ${KEYMAP} >/dev/null 2>&1 ||
|
||||
failed=1
|
||||
[ -z "${KEYMAP_CORRECTIONS}" ] ||
|
||||
loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 ||
|
||||
failed=1
|
||||
# Figure out the command to set the console into the
|
||||
# desired mode
|
||||
is_true "${UNICODE}" &&
|
||||
MODE_COMMAND="${ECHO} -en '\033%G' && kbd_mode -u" ||
|
||||
MODE_COMMAND="${ECHO} -en '\033%@\033(K' && kbd_mode -a"
|
||||
|
||||
# Convert the keymap from $LEGACY_CHARSET to UTF-8
|
||||
[ -z "$LEGACY_CHARSET" ] ||
|
||||
dumpkeys -c "$LEGACY_CHARSET" |
|
||||
loadkeys -u >/dev/null 2>&1 ||
|
||||
failed=1
|
||||
# On framebuffer consoles, font has to be set for each vt in
|
||||
# UTF-8 mode. This doesn't hurt in non-UTF-8 mode also.
|
||||
|
||||
# If any of the commands above failed, the trap at the
|
||||
# top would set $failed to 1
|
||||
( exit $failed )
|
||||
evaluate_retval
|
||||
;;
|
||||
*)
|
||||
echo $"Usage:" "${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
! is_true "${USE_FB}" || [ -z "${FONT}" ] ||
|
||||
MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}"
|
||||
|
||||
# Apply that command to all consoles mentioned in
|
||||
# /etc/inittab. Important: in the UTF-8 mode this should
|
||||
# happen before setfont, otherwise a kernel bug will
|
||||
# show up and the unicode map of the font will not be
|
||||
# used.
|
||||
# FIXME: Fedora Core also initializes two spare consoles
|
||||
# - do we want that?
|
||||
|
||||
for TTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab |
|
||||
grep -o '\btty[[:digit:]]*\b'`
|
||||
do
|
||||
openvt -f -w -c ${TTY#tty} -- \
|
||||
/bin/sh -c "${MODE_COMMAND}" || failed=1
|
||||
done
|
||||
|
||||
# Set the font (if not already set above) and the keymap
|
||||
is_true "${USE_FB}" || [ -z "${FONT}" ] ||
|
||||
setfont $FONT ||
|
||||
failed=1
|
||||
[ -z "${KEYMAP}" ] ||
|
||||
loadkeys ${KEYMAP} >/dev/null 2>&1 ||
|
||||
failed=1
|
||||
[ -z "${KEYMAP_CORRECTIONS}" ] ||
|
||||
loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 ||
|
||||
failed=1
|
||||
|
||||
# Convert the keymap from $LEGACY_CHARSET to UTF-8
|
||||
[ -z "$LEGACY_CHARSET" ] ||
|
||||
dumpkeys -c "$LEGACY_CHARSET" |
|
||||
loadkeys -u >/dev/null 2>&1 ||
|
||||
failed=1
|
||||
|
||||
# If any of the commands above failed, the trap at the
|
||||
# top would set $failed to 1
|
||||
( exit $failed )
|
||||
evaluate_retval
|
||||
;;
|
||||
*)
|
||||
echo $"Usage:" "${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/console
|
||||
# End console
|
||||
|
@ -1,61 +1,73 @@
|
||||
#!/bin/sh
|
||||
# Begin $rc_base/init.d/consolelog
|
||||
|
||||
########################################################################
|
||||
# Begin consolelog
|
||||
#
|
||||
# Description : Set the kernel log level for the console
|
||||
#
|
||||
# Authors : Dan Nicholson - dnicholson@linuxfromscratch.org
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
# Notes : /proc must be mounted before this can run
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: consolelog
|
||||
# Required-Start:
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Sets the console log level.
|
||||
# Description: Sets the console log level.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
# set the default loglevel
|
||||
LOGLEVEL=7
|
||||
if [ -r /etc/sysconfig/console ]; then
|
||||
. /etc/sysconfig/console
|
||||
fi
|
||||
|
||||
[ -r /etc/sysconfig/console ] && . /etc/sysconfig/console
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
case "$LOGLEVEL" in
|
||||
[1-8])
|
||||
boot_mesg "Setting the console log level to ${LOGLEVEL}..."
|
||||
dmesg -n $LOGLEVEL
|
||||
evaluate_retval
|
||||
;;
|
||||
*)
|
||||
boot_mesg "Console log level '${LOGLEVEL}' is invalid" ${FAILURE}
|
||||
echo_failure
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
status)
|
||||
# Read the current value if possible
|
||||
if [ -r /proc/sys/kernel/printk ]; then
|
||||
read level line < /proc/sys/kernel/printk
|
||||
else
|
||||
boot_mesg "Can't read the current console log level" ${FAILURE}
|
||||
echo_failure
|
||||
fi
|
||||
start)
|
||||
case "$LOGLEVEL" in
|
||||
[1-8])
|
||||
boot_mesg "Setting the console log level to ${LOGLEVEL}..."
|
||||
dmesg -n $LOGLEVEL
|
||||
evaluate_retval
|
||||
;;
|
||||
*)
|
||||
boot_mesg "Console log level '${LOGLEVEL}' is invalid" ${FAILURE}
|
||||
echo_failure
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
# Print the value
|
||||
if [ -n "$level" ]; then
|
||||
${ECHO} -e "${INFO}The current console log level" \
|
||||
"is ${level}${NORMAL}"
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
# Read the current value if possible
|
||||
if [ -r /proc/sys/kernel/printk ]; then
|
||||
read level line < /proc/sys/kernel/printk
|
||||
else
|
||||
boot_mesg "Can't read the current console log level" ${FAILURE}
|
||||
echo_failure
|
||||
fi
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|status}"
|
||||
exit 1
|
||||
;;
|
||||
# Print the value
|
||||
if [ -n "$level" ]; then
|
||||
${ECHO} -e "${INFO}The current console log level is ${level}${NORMAL}"
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/consolelog
|
||||
# End consolelog
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,28 +1,38 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/halt
|
||||
# Begin halt
|
||||
#
|
||||
# Description : Halt Script
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: halt
|
||||
# Required-Start:
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: 0
|
||||
# Default-Stop:
|
||||
# Short-Description: Halts the system.
|
||||
# Description: Halts the System.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
case "${1}" in
|
||||
stop)
|
||||
halt -d -f -i -p
|
||||
;;
|
||||
*)
|
||||
echo "Usage: {stop}"
|
||||
exit 1
|
||||
;;
|
||||
stop)
|
||||
halt -d -f -i -p
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: {stop}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/halt
|
||||
# End halt
|
||||
|
@ -1,54 +1,66 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/localnet
|
||||
# Begin localnet
|
||||
#
|
||||
# Description : Loopback device
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: localnet
|
||||
# Required-Start: $local_fs
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop: 0 6
|
||||
# Short-Description: Starts the local network.
|
||||
# Description: Sets the hostname of the machine and starts the
|
||||
# loopback interface.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
. /etc/sysconfig/network
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Bringing up the loopback interface..."
|
||||
ip addr add 127.0.0.1/8 label lo dev lo
|
||||
ip link set lo up
|
||||
evaluate_retval
|
||||
start)
|
||||
boot_mesg "Bringing up the loopback interface..."
|
||||
ip addr add 127.0.0.1/8 label lo dev lo
|
||||
ip link set lo up
|
||||
evaluate_retval
|
||||
|
||||
boot_mesg "Setting hostname to ${HOSTNAME}..."
|
||||
hostname ${HOSTNAME}
|
||||
evaluate_retval
|
||||
;;
|
||||
boot_mesg "Setting hostname to ${HOSTNAME}..."
|
||||
hostname ${HOSTNAME}
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
stop)
|
||||
boot_mesg "Bringing down the loopback interface..."
|
||||
ip link set lo down
|
||||
evaluate_retval
|
||||
;;
|
||||
stop)
|
||||
boot_mesg "Bringing down the loopback interface..."
|
||||
ip link set lo down
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
|
||||
status)
|
||||
echo "Hostname is: $(hostname)"
|
||||
ip link show lo
|
||||
;;
|
||||
status)
|
||||
echo "Hostname is: $(hostname)"
|
||||
ip link show lo
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/localnet
|
||||
# End localnet
|
||||
|
@ -1,72 +1,83 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/modules
|
||||
# Begin modules
|
||||
#
|
||||
# Description : Module auto-loading script
|
||||
#
|
||||
# Authors : Zack Winkles
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: modules
|
||||
# Required-Start: mountvirtfs sysctl
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Loads required modules.
|
||||
# Description: Loads modules listed in /etc/sysconfig/modules.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
# Assure that the kernel has module support.
|
||||
[ -e /proc/ksyms -o -e /proc/modules ] || exit 0
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
start)
|
||||
# Exit if there's no modules file or there are no
|
||||
# valid entries
|
||||
[ -r /etc/sysconfig/modules ] &&
|
||||
egrep -qv '^($|#)' /etc/sysconfig/modules ||
|
||||
exit 0
|
||||
|
||||
# Exit if there's no modules file or there are no
|
||||
# valid entries
|
||||
[ -r /etc/sysconfig/modules ] &&
|
||||
egrep -qv '^($|#)' /etc/sysconfig/modules ||
|
||||
exit 0
|
||||
boot_mesg -n "Loading modules:" ${INFO}
|
||||
|
||||
boot_mesg -n "Loading modules:" ${INFO}
|
||||
# Only try to load modules if the user has actually given us
|
||||
# some modules to load.
|
||||
while read module args; do
|
||||
|
||||
# Only try to load modules if the user has actually given us
|
||||
# some modules to load.
|
||||
while read module args; do
|
||||
# Ignore comments and blank lines.
|
||||
case "$module" in
|
||||
""|"#"*) continue ;;
|
||||
esac
|
||||
|
||||
# Ignore comments and blank lines.
|
||||
case "$module" in
|
||||
""|"#"*) continue ;;
|
||||
esac
|
||||
# Attempt to load the module, making
|
||||
# sure to pass any arguments provided.
|
||||
modprobe ${module} ${args} >/dev/null
|
||||
|
||||
# Attempt to load the module, making
|
||||
# sure to pass any arguments provided.
|
||||
modprobe ${module} ${args} >/dev/null
|
||||
# Print the module name if successful,
|
||||
# otherwise take note.
|
||||
if [ $? -eq 0 ]; then
|
||||
boot_mesg -n " ${module}" ${NORMAL}
|
||||
else
|
||||
failedmod="${failedmod} ${module}"
|
||||
fi
|
||||
done < /etc/sysconfig/modules
|
||||
|
||||
# Print the module name if successful,
|
||||
# otherwise take note.
|
||||
if [ $? -eq 0 ]; then
|
||||
boot_mesg -n " ${module}" ${NORMAL}
|
||||
else
|
||||
failedmod="${failedmod} ${module}"
|
||||
fi
|
||||
done < /etc/sysconfig/modules
|
||||
boot_mesg "" ${NORMAL}
|
||||
# Print a message about successfully loaded
|
||||
# modules on the correct line.
|
||||
echo_ok
|
||||
|
||||
boot_mesg "" ${NORMAL}
|
||||
# Print a message about successfully loaded
|
||||
# modules on the correct line.
|
||||
echo_ok
|
||||
# Print a failure message with a list of any
|
||||
# modules that may have failed to load.
|
||||
if [ -n "${failedmod}" ]; then
|
||||
boot_mesg "Failed to load modules:${failedmod}" ${FAILURE}
|
||||
echo_failure
|
||||
fi
|
||||
;;
|
||||
|
||||
# Print a failure message with a list of any
|
||||
# modules that may have failed to load.
|
||||
if [ -n "${failedmod}" ]; then
|
||||
boot_mesg "Failed to load modules:${failedmod}" ${FAILURE}
|
||||
echo_failure
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/modules
|
||||
# End modules
|
||||
|
@ -1,56 +1,70 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/mountfs
|
||||
# Begin mountfs
|
||||
#
|
||||
# Description : File System Mount Script
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: $local_fs
|
||||
# Required-Start: udev checkfs
|
||||
# Should-Start:
|
||||
# Required-Stop: swap
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop: 0 6
|
||||
# Short-Description: Mounts/unmounts local filesystems defined in /etc/fstab.
|
||||
# Description: Remounts root filesystem read/write and mounts all
|
||||
# remaining local filesystems defined in /etc/fstab on
|
||||
# start. Remounts root filesystem read-only and unmounts
|
||||
# remaining filesystems on stop.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Remounting root file system in read-write mode..."
|
||||
mount -n -o remount,rw / >/dev/null
|
||||
evaluate_retval
|
||||
start)
|
||||
boot_mesg "Remounting root file system in read-write mode..."
|
||||
mount -n -o remount,rw / >/dev/null
|
||||
evaluate_retval
|
||||
|
||||
# Remove fsck-related file system watermarks.
|
||||
rm -f /fastboot /forcefsck
|
||||
# Remove fsck-related file system watermarks.
|
||||
rm -f /fastboot /forcefsck
|
||||
|
||||
boot_mesg "Recording existing mounts in /etc/mtab..."
|
||||
> /etc/mtab
|
||||
boot_mesg "Recording existing mounts in /etc/mtab..."
|
||||
> /etc/mtab
|
||||
|
||||
mount -f / || failed=1
|
||||
mount -f /proc || failed=1
|
||||
mount -f /sys || failed=1
|
||||
mount -f /run || failed=1
|
||||
(exit ${failed})
|
||||
evaluate_retval
|
||||
mount -f / || failed=1
|
||||
mount -f /proc || failed=1
|
||||
mount -f /sys || failed=1
|
||||
mount -f /run || failed=1
|
||||
(exit ${failed})
|
||||
evaluate_retval
|
||||
|
||||
# This will mount all filesystems that do not have _netdev in
|
||||
# their option list. _netdev denotes a network filesystem.
|
||||
boot_mesg "Mounting remaining file systems..."
|
||||
mount -a -O no_netdev >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
# This will mount all filesystems that do not have _netdev in
|
||||
# their option list. _netdev denotes a network filesystem.
|
||||
boot_mesg "Mounting remaining file systems..."
|
||||
mount -a -O no_netdev >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
stop)
|
||||
boot_mesg "Unmounting all other currently mounted file systems..."
|
||||
umount -a -d -r >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
stop)
|
||||
boot_mesg "Unmounting all other currently mounted file systems..."
|
||||
umount -a -d -r >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/mountfs
|
||||
# End mountfs
|
||||
|
@ -1,50 +1,63 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/mountvirtfs
|
||||
# Begin mountvirtfs
|
||||
#
|
||||
# Description : Mount proc, sysfs, and run
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: mountvirtfs
|
||||
# Required-Start:
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Mounts /sys and /proc virtual (kernel) filesystems.
|
||||
# Mounts /run tmpfs.
|
||||
# Description: Mounts /sys and /proc virtual (kernel) filesystems.
|
||||
# Mounts /run tmpfs.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg -n "Mounting virtual file systems:" ${INFO}
|
||||
start)
|
||||
mkdir -p /run
|
||||
mount -n /run || failed=1
|
||||
mkdir -p /run/{var,lock,shm}
|
||||
|
||||
if ! mountpoint /proc >/dev/null; then
|
||||
boot_mesg -n " /proc" ${NORMAL}
|
||||
mount -n /proc || failed=1
|
||||
fi
|
||||
|
||||
if ! mountpoint /sys >/dev/null; then
|
||||
boot_mesg -n " /sys" ${NORMAL}
|
||||
mount -n /sys || failed=1
|
||||
fi
|
||||
boot_mesg -n "Mounting virtual file systems:" ${INFO}
|
||||
boot_mesg -n " /run" ${NORMAL}
|
||||
|
||||
if ! mountpoint /run >/dev/null; then
|
||||
boot_mesg -n " /run" ${NORMAL}
|
||||
mount -n /run || failed=1
|
||||
mkdir /run/{var,lock,shm}
|
||||
fi
|
||||
if ! mountpoint /proc >/dev/null; then
|
||||
boot_mesg -n " /proc" ${NORMAL}
|
||||
mount -n /proc || failed=1
|
||||
fi
|
||||
|
||||
boot_mesg "" ${NORMAL}
|
||||
if ! mountpoint /sys >/dev/null; then
|
||||
boot_mesg -n " /sys" ${NORMAL}
|
||||
mount -n /sys || failed=1
|
||||
fi
|
||||
|
||||
(exit ${failed})
|
||||
evaluate_retval
|
||||
;;
|
||||
boot_mesg "" ${NORMAL}
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
(exit ${failed})
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/mountvertfs
|
||||
# End mountvertfs
|
||||
|
@ -1,73 +1,81 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/network
|
||||
# Begin network
|
||||
#
|
||||
# Description : Network Control Script
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /etc/sysconfig/network
|
||||
### BEGIN INIT INFO
|
||||
# Provides: $network
|
||||
# Required-Start: $local_fs swap localnet
|
||||
# Should-Start: $syslog
|
||||
# Required-Stop: $local_fs swap localnet
|
||||
# Should-Stop: $syslog
|
||||
# Default-Start: 3 4 5
|
||||
# Default-Stop: 0 1 2 6
|
||||
# Short-Description: Starts and configures network interfaces.
|
||||
# Description: Starts and configures network interfaces.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
# Start all network interfaces
|
||||
for file in ${network_devices}/ifconfig.*
|
||||
do
|
||||
interface=${file##*/ifconfig.}
|
||||
start)
|
||||
# Start all network interfaces
|
||||
for file in /etc/sysconfig/ifconfig.*
|
||||
do
|
||||
interface=${file##*/ifconfig.}
|
||||
|
||||
# skip if $file is * (because nothing was found)
|
||||
if [ "${interface}" = "*" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
# skip if $file is * (because nothing was found)
|
||||
if [ "${interface}" = "*" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
|
||||
IN_BOOT=1 ${network_devices}/ifup ${interface}
|
||||
done
|
||||
;;
|
||||
/sbin/ifup ${interface}
|
||||
done
|
||||
;;
|
||||
|
||||
stop)
|
||||
# Reverse list
|
||||
FILES=""
|
||||
for file in ${network_devices}/ifconfig.*
|
||||
do
|
||||
FILES="${file} ${FILES}"
|
||||
done
|
||||
stop)
|
||||
# Reverse list
|
||||
FILES=""
|
||||
for file in /etc/sysconfig/ifconfig.*
|
||||
do
|
||||
FILES="${file} ${FILES}"
|
||||
done
|
||||
|
||||
# Stop all network interfaces
|
||||
for file in ${FILES}
|
||||
do
|
||||
interface=${file##*/ifconfig.}
|
||||
# Stop all network interfaces
|
||||
for file in ${FILES}
|
||||
do
|
||||
interface=${file##*/ifconfig.}
|
||||
|
||||
# skip if $file is * (because nothing was found)
|
||||
if [ "${interface}" = "*" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
# skip if $file is * (because nothing was found)
|
||||
if [ "${interface}" = "*" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
|
||||
IN_BOOT=1 ${network_devices}/ifdown ${interface}
|
||||
done
|
||||
;;
|
||||
/sbin/ifdown ${interface}
|
||||
done
|
||||
;;
|
||||
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End /etc/rc.d/init.d/network
|
||||
# End network
|
||||
|
@ -1,19 +1,52 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/rc
|
||||
# Begin rc
|
||||
#
|
||||
# Description : Main Run Level Control Script
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /lib/boot/functions
|
||||
|
||||
print_error_msg()
|
||||
{
|
||||
echo_failure
|
||||
# $i is set when called
|
||||
boot_mesg -n "FAILURE:\n\nYou should not be reading this error message.\n\n" ${FAILURE}
|
||||
boot_mesg -n " It means that an unforeseen error took"
|
||||
boot_mesg -n " place in ${i}, which exited with a return value of"
|
||||
boot_mesg " ${error_value}.\n"
|
||||
boot_mesg_flush
|
||||
boot_mesg -n "If you're able to track this"
|
||||
boot_mesg -n " error down to a bug in one of the files provided by"
|
||||
boot_mesg -n " the LFS book, please be so kind to inform us at"
|
||||
boot_mesg " lfs-dev@linuxfromscratch.org.\n"
|
||||
boot_mesg_flush
|
||||
boot_mesg -n "Press Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
wait_for_user
|
||||
}
|
||||
|
||||
check_script_status()
|
||||
{
|
||||
# $i is set when called
|
||||
if [ ! -f ${i} ]; then
|
||||
boot_mesg "${i} is not a valid symlink." ${WARNING}
|
||||
echo_warning
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ ! -x ${i} ]; then
|
||||
boot_mesg "${i} is not executable, skipping." ${WARNING}
|
||||
echo_warning
|
||||
continue
|
||||
fi
|
||||
}
|
||||
|
||||
# This sets a few default terminal options.
|
||||
stty sane
|
||||
@ -24,76 +57,77 @@ trap "" INT QUIT TSTP
|
||||
[ "${1}" != "" ] && runlevel=${1}
|
||||
|
||||
if [ "${runlevel}" = "" ]; then
|
||||
echo "Usage: ${0} <runlevel>" >&2
|
||||
exit 1
|
||||
echo "Usage: ${0} <runlevel>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
previous=${PREVLEVEL}
|
||||
[ "${previous}" = "" ] && previous=N
|
||||
|
||||
if [ ! -d ${rc_base}/rc${runlevel}.d ]; then
|
||||
boot_mesg "${rc_base}/rc${runlevel}.d does not exist." ${WARNING}
|
||||
boot_mesg_flush
|
||||
exit 1
|
||||
if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then
|
||||
boot_mesg "/etc/rc.d/rc${runlevel}.d does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Attempt to stop all service started by previous runlevel,
|
||||
# Attempt to stop all services started by the previous runlevel,
|
||||
# and killed in this runlevel
|
||||
if [ "${previous}" != "N" ]; then
|
||||
for i in $(ls -v ${rc_base}/rc${runlevel}.d/K* 2> /dev/null)
|
||||
do
|
||||
check_script_status
|
||||
for i in $(ls -v /etc/rc.d/rc${runlevel}.d/K* 2> /dev/null)
|
||||
do
|
||||
check_script_status
|
||||
|
||||
suffix=${i#$rc_base/rc$runlevel.d/K[0-9][0-9]}
|
||||
prev_start=$rc_base/rc$previous.d/S[0-9][0-9]$suffix
|
||||
sysinit_start=$rc_base/rcsysinit.d/S[0-9][0-9]$suffix
|
||||
suffix=${i#/etc/rc.d/rc$runlevel.d/K[0-9][0-9]}
|
||||
prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
|
||||
sysinit_start=/etc/rc.d/rcsysinit.d/S[0-9][0-9]$suffix
|
||||
|
||||
if [ "${runlevel}" != "0" ] && [ "${runlevel}" != "6" ]; then
|
||||
if [ ! -f ${prev_start} ] && [ ! -f ${sysinit_start} ]; then
|
||||
boot_mesg -n "WARNING:\n\n${i} can't be" ${WARNING}
|
||||
boot_mesg -n " executed because it was not"
|
||||
boot_mesg -n " not started in the previous"
|
||||
boot_mesg -n " runlevel (${previous})."
|
||||
boot_mesg "" ${NORMAL}
|
||||
boot_mesg_flush
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
${i} stop
|
||||
error_value=${?}
|
||||
if [ "${runlevel}" != "0" ] && [ "${runlevel}" != "6" ]; then
|
||||
if [ ! -f ${prev_start} ] && [ ! -f ${sysinit_start} ]; then
|
||||
boot_mesg -n "WARNING:\n\n${i} can't be" ${WARNING}
|
||||
boot_mesg -n " executed because it was not"
|
||||
boot_mesg -n " not started in the previous"
|
||||
boot_mesg -n " runlevel (${previous})."
|
||||
boot_mesg "" ${NORMAL}
|
||||
boot_mesg_flush
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
${i} stop
|
||||
error_value=${?}
|
||||
|
||||
if [ "${error_value}" != "0" ]; then
|
||||
print_error_msg
|
||||
fi
|
||||
done
|
||||
if [ "${error_value}" != "0" ]; then
|
||||
print_error_msg
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
[ "${previous}" = "N" ] && IN_BOOT=1
|
||||
|
||||
#Start all functions in this runlevel
|
||||
for i in $( ls -v ${rc_base}/rc${runlevel}.d/S* 2> /dev/null)
|
||||
for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null)
|
||||
do
|
||||
if [ "${previous}" != "N" ]; then
|
||||
suffix=${i#$rc_base/rc$runlevel.d/S[0-9][0-9]}
|
||||
stop=$rc_base/rc$runlevel.d/K[0-9][0-9]$suffix
|
||||
prev_start=$rc_base/rc$previous.d/S[0-9][0-9]$suffix
|
||||
if [ "${previous}" != "N" ]; then
|
||||
suffix=${i#/etc/rc.d/rc$runlevel.d/S[0-9][0-9]}
|
||||
stop=/etc/rc.d/rc$runlevel.d/K[0-9][0-9]$suffix
|
||||
prev_start=/etc/rc.d/rc$previous.d/S[0-9][0-9]$suffix
|
||||
|
||||
[ -f ${prev_start} ] && [ ! -f ${stop} ] && continue
|
||||
fi
|
||||
[ -f ${prev_start} ] && [ ! -f ${stop} ] && continue
|
||||
fi
|
||||
|
||||
check_script_status
|
||||
check_script_status
|
||||
|
||||
case ${runlevel} in
|
||||
0|6)
|
||||
${i} stop
|
||||
;;
|
||||
*)
|
||||
${i} start
|
||||
;;
|
||||
esac
|
||||
error_value=${?}
|
||||
case ${runlevel} in
|
||||
0|6)
|
||||
${i} stop
|
||||
;;
|
||||
*)
|
||||
${i} start
|
||||
;;
|
||||
esac
|
||||
error_value=${?}
|
||||
|
||||
if [ "${error_value}" != "0" ]; then
|
||||
print_error_msg
|
||||
fi
|
||||
if [ "${error_value}" != "0" ]; then
|
||||
print_error_msg
|
||||
fi
|
||||
done
|
||||
|
||||
# End $rc_base/init.d/rc
|
||||
# End rc
|
||||
|
@ -1,31 +1,42 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/reboot
|
||||
# Begin reboot
|
||||
#
|
||||
# Description : Reboot Scripts
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: reboot
|
||||
# Required-Start:
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: 6
|
||||
# Default-Stop:
|
||||
# Short-Description: Reboots the system.
|
||||
# Description: Reboots the System.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
stop)
|
||||
boot_mesg "Restarting system..."
|
||||
reboot -d -f -i
|
||||
;;
|
||||
stop)
|
||||
boot_mesg "Restarting system..."
|
||||
reboot -d -f -i
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {stop}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {stop}"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/reboot
|
||||
# End reboot
|
||||
|
@ -1,52 +1,63 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/sendsignals
|
||||
# Begin sendsignals
|
||||
#
|
||||
# Description : Sendsignals Script
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: sendsignals
|
||||
# Required-Start:
|
||||
# Should-Start:
|
||||
# Required-Stop: $local_fs swap localnet
|
||||
# Should-Stop:
|
||||
# Default-Start:
|
||||
# Default-Stop: 0 6
|
||||
# Short-Description: Attempts to kill remaining processes.
|
||||
# Description: Attempts to kill remaining processes.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot//functions
|
||||
|
||||
case "${1}" in
|
||||
stop)
|
||||
boot_mesg "Sending all processes the TERM signal..."
|
||||
killall5 -15
|
||||
error_value=${?}
|
||||
stop)
|
||||
boot_mesg "Sending all processes the TERM signal..."
|
||||
killall5 -15
|
||||
error_value=${?}
|
||||
|
||||
sleep ${KILLDELAY}
|
||||
sleep ${KILLDELAY}
|
||||
|
||||
if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failure
|
||||
fi
|
||||
if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failure
|
||||
fi
|
||||
|
||||
boot_mesg "Sending all processes the KILL signal..."
|
||||
killall5 -9
|
||||
error_value=${?}
|
||||
boot_mesg "Sending all processes the KILL signal..."
|
||||
killall5 -9
|
||||
error_value=${?}
|
||||
|
||||
sleep ${KILLDELAY}
|
||||
sleep ${KILLDELAY}
|
||||
|
||||
if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failure
|
||||
fi
|
||||
;;
|
||||
if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failure
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {stop}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {stop}"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/sendsignals
|
||||
# End sendsignals
|
||||
|
@ -1,47 +1,61 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/setclock
|
||||
# Begin setclock
|
||||
#
|
||||
# Description : Setting Linux Clock
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /etc/sysconfig/clock
|
||||
### BEGIN INIT INFO
|
||||
# Provides: $time
|
||||
# Required-Start:
|
||||
# Should-Start: modules
|
||||
# Required-Stop:
|
||||
# Should-Stop: $syslog
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Stores and restores time from the hardware clock
|
||||
# Description: On boot, system time is obtained from hwclock. The
|
||||
# hardware clock can also be set on shutdown.
|
||||
# X-LFS-Provided-By: LFS BLFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
[ -r /etc/sysconfig/clock ] && . /etc/sysconfig/clock
|
||||
|
||||
|
||||
case "${UTC}" in
|
||||
yes|true|1)
|
||||
CLOCKPARAMS="${CLOCKPARAMS} --utc"
|
||||
;;
|
||||
yes|true|1)
|
||||
CLOCKPARAMS="${CLOCKPARAMS} --utc"
|
||||
;;
|
||||
|
||||
no|false|0)
|
||||
CLOCKPARAMS="${CLOCKPARAMS} --localtime"
|
||||
;;
|
||||
no|false|0)
|
||||
CLOCKPARAMS="${CLOCKPARAMS} --localtime"
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
case ${1} in
|
||||
start)
|
||||
boot_mesg "Setting system clock..."
|
||||
hwclock --hctosys ${CLOCKPARAMS} >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
start)
|
||||
boot_mesg "Setting system clock..."
|
||||
hwclock --hctosys ${CLOCKPARAMS} >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
stop)
|
||||
boot_mesg "Setting hardware clock..."
|
||||
hwclock --systohc ${CLOCKPARAMS} >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
stop)
|
||||
boot_mesg "Setting hardware clock..."
|
||||
hwclock --systohc ${CLOCKPARAMS} >/dev/null
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop}"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop}"
|
||||
;;
|
||||
|
||||
esac
|
||||
|
@ -1,50 +1,62 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/swap
|
||||
# Begin swap
|
||||
#
|
||||
# Description : Swap Control Script
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: swap
|
||||
# Required-Start: udev
|
||||
# Should-Start: modules
|
||||
# Required-Stop: localnet
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop: 0 6
|
||||
# Short-Description: Mounts and unmounts swap partitions.
|
||||
# Description: Mounts and unmounts swap partitions defined in
|
||||
# /etc/fstab.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Activating all swap files/partitions..."
|
||||
swapon -a
|
||||
evaluate_retval
|
||||
;;
|
||||
start)
|
||||
boot_mesg "Activating all swap files/partitions..."
|
||||
swapon -a
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
stop)
|
||||
boot_mesg "Deactivating all swap files/partitions..."
|
||||
swapoff -a
|
||||
evaluate_retval
|
||||
;;
|
||||
stop)
|
||||
boot_mesg "Deactivating all swap files/partitions..."
|
||||
swapoff -a
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
|
||||
status)
|
||||
boot_mesg "Retrieving swap status." ${INFO}
|
||||
echo_ok
|
||||
echo
|
||||
swapon -s
|
||||
;;
|
||||
status)
|
||||
boot_mesg "Retrieving swap status." ${INFO}
|
||||
echo_ok
|
||||
echo
|
||||
swapon -s
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/swap
|
||||
# End swap
|
||||
|
@ -1,39 +1,51 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/sysctl
|
||||
# Begin sysctl
|
||||
#
|
||||
# Description : File uses /etc/sysctl.conf to set kernel runtime
|
||||
# parameters
|
||||
#
|
||||
# Authors : Nathan Coulson (nathan@linuxfromscratch.org)
|
||||
# Matthew Burgress (matthew@linuxfromscratch.org)
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: sysctl
|
||||
# Required-Start: mountkernfs
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Makes changes to the proc filesystem
|
||||
# Description: Makes changes to the proc filesystem as defined in
|
||||
# /etc/sysctl.conf. See 'man sysctl(8)'.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
if [ -f "/etc/sysctl.conf" ]; then
|
||||
boot_mesg "Setting kernel runtime parameters..."
|
||||
sysctl -q -p
|
||||
evaluate_retval
|
||||
fi
|
||||
;;
|
||||
start)
|
||||
if [ -f "/etc/sysctl.conf" ]; then
|
||||
boot_mesg "Setting kernel runtime parameters..."
|
||||
sysctl -q -p
|
||||
evaluate_retval
|
||||
fi
|
||||
;;
|
||||
|
||||
status)
|
||||
sysctl -a
|
||||
;;
|
||||
status)
|
||||
sysctl -a
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|status}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/sysctl
|
||||
# End sysctl
|
||||
|
@ -1,57 +1,70 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/sysklogd
|
||||
# Begin sysklogd
|
||||
#
|
||||
# Description : Sysklogd loader
|
||||
#
|
||||
# Authors : Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: $syslog
|
||||
# Required-Start: localnet
|
||||
# Should-Start:
|
||||
# Required-Stop: $local_fs sendsignals
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Starts kernel and system log daemons.
|
||||
# Description: Starts kernel and system log daemons.
|
||||
# /etc/fstab.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Starting system log daemon..."
|
||||
loadproc syslogd -m 0
|
||||
start)
|
||||
boot_mesg "Starting system log daemon..."
|
||||
PARMS=${SYSKLOGD_PARMS=-'-m 0'}
|
||||
loadproc syslogd $PARMS
|
||||
|
||||
boot_mesg "Starting kernel log daemon..."
|
||||
loadproc klogd
|
||||
;;
|
||||
boot_mesg "Starting kernel log daemon..."
|
||||
loadproc klogd
|
||||
;;
|
||||
|
||||
stop)
|
||||
boot_mesg "Stopping kernel log daemon..."
|
||||
killproc klogd
|
||||
stop)
|
||||
boot_mesg "Stopping kernel log daemon..."
|
||||
killproc klogd
|
||||
|
||||
boot_mesg "Stopping system log daemon..."
|
||||
killproc syslogd
|
||||
;;
|
||||
boot_mesg "Stopping system log daemon..."
|
||||
killproc syslogd
|
||||
;;
|
||||
|
||||
reload)
|
||||
boot_mesg "Reloading system log daemon config file..."
|
||||
reloadproc syslogd
|
||||
;;
|
||||
reload)
|
||||
boot_mesg "Reloading system log daemon config file..."
|
||||
reloadproc syslogd
|
||||
;;
|
||||
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
|
||||
status)
|
||||
statusproc syslogd
|
||||
statusproc klogd
|
||||
;;
|
||||
status)
|
||||
statusproc syslogd
|
||||
statusproc klogd
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|reload|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|reload|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/sysklogd
|
||||
# End sysklogd
|
||||
|
@ -1,50 +1,62 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/
|
||||
# Begin scriptname
|
||||
#
|
||||
# Description :
|
||||
#
|
||||
# Authors :
|
||||
#
|
||||
# Version : 00.00
|
||||
# Version : LFS x.x
|
||||
#
|
||||
# Notes :
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: template
|
||||
# Required-Start:
|
||||
# Should-Start:
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start:
|
||||
# Default-Stop:
|
||||
# Short-Description:
|
||||
# Description:
|
||||
# X-LFS-Provided-By:
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Starting..."
|
||||
loadproc
|
||||
;;
|
||||
start)
|
||||
boot_mesg "Starting..."
|
||||
loadproc
|
||||
;;
|
||||
|
||||
stop)
|
||||
boot_mesg "Stopping..."
|
||||
killproc
|
||||
;;
|
||||
stop)
|
||||
boot_mesg "Stopping..."
|
||||
killproc
|
||||
;;
|
||||
|
||||
reload)
|
||||
boot_mesg "Reloading..."
|
||||
reloadproc
|
||||
;;
|
||||
reload)
|
||||
boot_mesg "Reloading..."
|
||||
reloadproc
|
||||
;;
|
||||
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
restart)
|
||||
${0} stop
|
||||
sleep 1
|
||||
${0} start
|
||||
;;
|
||||
|
||||
status)
|
||||
statusproc
|
||||
;;
|
||||
status)
|
||||
statusproc
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|reload|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0} {start|stop|reload|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/
|
||||
# End scriptname
|
||||
|
@ -1,83 +1,94 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/udev
|
||||
# Begin udev
|
||||
#
|
||||
# Description : Udev cold-plugging script
|
||||
#
|
||||
# Authors : Zack Winkles, Alexander E. Patrakov
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.02
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: udev
|
||||
# Required-Start:
|
||||
# Should-Start: modules
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Populates /dev with device nodes.
|
||||
# Description: Mounts a tempfs on /dev and starts the udevd daemon.
|
||||
# Device nodes are created as defined by udev.
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Populating /dev with device nodes..."
|
||||
if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nUnable to create" ${FAILURE}
|
||||
boot_mesg -n " devices without a SysFS filesystem"
|
||||
boot_mesg -n "\n\nAfter you press Enter, this system"
|
||||
boot_mesg -n " will be halted and powered off."
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
read ENTER
|
||||
/etc/rc.d/init.d/halt stop
|
||||
fi
|
||||
start)
|
||||
boot_mesg "Populating /dev with device nodes..."
|
||||
if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nUnable to create" ${FAILURE}
|
||||
boot_mesg -n " devices without a SysFS filesystem"
|
||||
boot_mesg -n "\n\nAfter you press Enter, this system"
|
||||
boot_mesg -n " will be halted and powered off."
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
wait_for_user
|
||||
/etc/rc.d/init.d/halt stop
|
||||
fi
|
||||
|
||||
# Mount a temporary file system over /dev, so that any devices
|
||||
# made or removed during this boot don't affect the next one.
|
||||
# The reason we don't write to mtab is because we don't ever
|
||||
# want /dev to be unavailable (such as by `umount -a').
|
||||
if ! mountpoint /dev > /dev/null; then
|
||||
mount -n -t tmpfs tmpfs /dev -o mode=755
|
||||
fi
|
||||
if [ ${?} != 0 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nCannot mount a tmpfs" ${FAILURE}
|
||||
boot_mesg -n " onto /dev, this system will be halted."
|
||||
boot_mesg -n "\n\nAfter you press Enter, this system"
|
||||
boot_mesg -n " will be halted and powered off."
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
read ENTER
|
||||
/etc/rc.d/init.d/halt stop
|
||||
fi
|
||||
# Mount a temporary file system over /dev, so that any devices
|
||||
# made or removed during this boot don't affect the next one.
|
||||
# The reason we don't write to mtab is because we don't ever
|
||||
# want /dev to be unavailable (such as by `umount -a').
|
||||
if ! mountpoint /dev > /dev/null; then
|
||||
mount -n -t tmpfs tmpfs /dev -o mode=755
|
||||
fi
|
||||
if [ ${?} != 0 ]; then
|
||||
echo_failure
|
||||
boot_mesg -n "FAILURE:\n\nCannot mount a tmpfs" ${FAILURE}
|
||||
boot_mesg -n " onto /dev, this system will be halted."
|
||||
boot_mesg -n "\n\nAfter you press Enter, this system"
|
||||
boot_mesg -n " will be halted and powered off."
|
||||
boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
|
||||
boot_mesg "" ${NORMAL}
|
||||
wait_for_user
|
||||
/etc/rc.d/init.d/halt stop
|
||||
fi
|
||||
|
||||
ln -s /run/shm /dev/shm
|
||||
ln -s /run/shm /dev/shm
|
||||
|
||||
# Udev handles uevents itself, so we don't need to have
|
||||
# the kernel call out to any binary in response to them
|
||||
echo > /proc/sys/kernel/hotplug
|
||||
# Udev handles uevents itself, so we don't need to have
|
||||
# the kernel call out to any binary in response to them
|
||||
echo > /proc/sys/kernel/hotplug
|
||||
|
||||
# Copy the only static device node that Udev >= 155 doesn't
|
||||
# handle to /dev
|
||||
cp -a /lib/udev/devices/null /dev
|
||||
# Copy the only static device node that Udev >= 155 doesn't
|
||||
# handle to /dev
|
||||
cp -a /lib/udev/devices/null /dev
|
||||
|
||||
# Start the udev daemon to continually watch for, and act on,
|
||||
# uevents
|
||||
/sbin/udevd --daemon
|
||||
# Start the udev daemon to continually watch for, and act on,
|
||||
# uevents
|
||||
/sbin/udevd --daemon
|
||||
|
||||
# Now traverse /sys in order to "coldplug" devices that have
|
||||
# already been discovered
|
||||
/sbin/udevadm trigger --action=add --type=subsystems
|
||||
/sbin/udevadm trigger --action=add --type=devices
|
||||
# Now traverse /sys in order to "coldplug" devices that have
|
||||
# already been discovered
|
||||
/sbin/udevadm trigger --action=add --type=subsystems
|
||||
/sbin/udevadm trigger --action=add --type=devices
|
||||
|
||||
# Now wait for udevd to process the uevents we triggered
|
||||
/sbin/udevadm settle
|
||||
evaluate_retval
|
||||
# Now wait for udevd to process the uevents we triggered
|
||||
/sbin/udevadm settle
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo "Usage ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/udev
|
||||
# End udev
|
||||
|
@ -1,45 +1,60 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $rc_base/init.d/udev_retry
|
||||
# Begin udev_retry
|
||||
#
|
||||
# Description : Udev cold-plugging script (retry)
|
||||
#
|
||||
# Authors : Alexander E. Patrakov
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.02
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
### BEGIN INIT INFO
|
||||
# Provides: udev_retry
|
||||
# Required-Start: udev
|
||||
# Should-Start: $local_fs
|
||||
# Required-Stop:
|
||||
# Should-Stop:
|
||||
# Default-Start: S
|
||||
# Default-Stop:
|
||||
# Short-Description: Replays failed uevents and creates additonal devices.
|
||||
# Description: Replays any failed uevents that were skipped due to
|
||||
# slow hardware initialization, and creates those needed
|
||||
# device nodes
|
||||
# X-LFS-Provided-By: LFS
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
boot_mesg "Retrying failed uevents, if any..."
|
||||
start)
|
||||
boot_mesg "Retrying failed uevents, if any..."
|
||||
|
||||
# From Debian: "copy the rules generated before / was mounted
|
||||
# read-write":
|
||||
for file in /dev/.udev/tmp-rules--*; do
|
||||
dest=${file##*tmp-rules--}
|
||||
[ "$dest" = '*' ] && break
|
||||
cat $file >> /etc/udev/rules.d/$dest
|
||||
rm -f $file
|
||||
done
|
||||
RUNDIR=$(/sbin/udevadm info --run)
|
||||
# From Debian: "copy the rules generated before / was mounted
|
||||
# read-write":
|
||||
|
||||
for file in ${RUNDIR}/tmp-rules--*; do
|
||||
dest=${file##*tmp-rules--}
|
||||
[ "$dest" = '*' ] && break
|
||||
cat $file >> /etc/udev/rules.d/$dest
|
||||
rm -f $file
|
||||
done
|
||||
|
||||
# Re-trigger the failed uevents in hope they will succeed now
|
||||
/sbin/udevadm trigger --type=failed --action=add
|
||||
|
||||
# Now wait for udevd to process the uevents we triggered
|
||||
/sbin/udevadm settle
|
||||
evaluate_retval
|
||||
;;
|
||||
# Re-trigger the failed uevents in hope they will succeed now
|
||||
/sbin/udevadm trigger --type=failed --action=add
|
||||
|
||||
*)
|
||||
echo "Usage ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
# Now wait for udevd to process the uevents we triggered
|
||||
/sbin/udevadm settle
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage ${0} {start}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/udev_retry
|
||||
# End udev_retry
|
||||
|
@ -1,95 +1,66 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $network_devices/ifdown
|
||||
# Begin /sbin/ifdown
|
||||
#
|
||||
# Description : Interface Down
|
||||
#
|
||||
# Authors : Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.01
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
# Notes : the IFCONFIG variable is passed to the scripts found
|
||||
# in the services directory, to indicate what file the
|
||||
# in the /lib/boot directory, to indicate what file the
|
||||
# service should source to get environmental variables.
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
file=/etc/sysconfig/ifconfig.${1}
|
||||
|
||||
# Collect a list of configuration files for our interface
|
||||
if [ -n "${2}" ]; then
|
||||
for file in ${@#$1}; do # All parameters except $1
|
||||
FILES="${FILES} ${network_devices}/ifconfig.${1}/${file}"
|
||||
done
|
||||
elif [ -d "${network_devices}/ifconfig.${1}" ]; then
|
||||
FILES=`echo ${network_devices}/ifconfig.${1}/*`
|
||||
# Skip backup files
|
||||
[ "${file}" = "${file%""~""}" ] || exit 0
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
if [ ! -r "${file}" ]; then
|
||||
boot_mesg "${file} is missing or cannot be accessed." ${WARNING}
|
||||
echo_warning
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. ${file}
|
||||
|
||||
if [ "$IFACE" = "" ]; then
|
||||
boot_mesg "${file} does not define an interface [IFACE]." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# This will run the service script, if SERVICE is set
|
||||
if [ -n "${SERVICE}" -a -x "/lib/boot/${SERVICE}" ]; then
|
||||
if ip link show ${IFACE} > /dev/null 2>&1; then
|
||||
IFCONFIG=${file} /lib/boot/${SERVICE} ${IFACE} down
|
||||
else
|
||||
boot_mesg "Interface ${1} doesn't exist." ${WARNING}
|
||||
echo_warning
|
||||
fi
|
||||
else
|
||||
FILES="${network_devices}/ifconfig.${1}"
|
||||
boot_mesg "Unable to process ${file}. Either" ${FAILURE}
|
||||
boot_mesg "the SERVICE variable was not set"
|
||||
boot_mesg "or the specified service cannot be executed."
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Reverse the order configuration files are processed in
|
||||
for file in ${FILES}; do
|
||||
FILES2="${file} ${FILES2}"
|
||||
done
|
||||
FILES=${FILES2}
|
||||
link_status=`ip link show ${IFACE} 2>/dev/null`
|
||||
|
||||
# Process each configuration file
|
||||
for file in ${FILES}; do
|
||||
# skip backup files
|
||||
if [ "${file}" != "${file%""~""}" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ ! -f "${file}" ]; then
|
||||
boot_mesg "${file} is not a network configuration file or directory." ${WARNING}
|
||||
echo_warning
|
||||
continue
|
||||
fi
|
||||
(
|
||||
. ${file}
|
||||
|
||||
# Will not process this service if started by boot, and ONBOOT
|
||||
# is not set to yes
|
||||
if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Will not process this service if started by hotplug, and
|
||||
# ONHOTPLUG is not set to yes
|
||||
if [ "${IN_HOTPLUG}" = "1" -a "${ONHOTPLUG}" != "yes" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# This will run the service script, if SERVICE is set
|
||||
if [ -n "${SERVICE}" -a -x "${network_devices}/services/${SERVICE}" ]; then
|
||||
if ip link show ${1} > /dev/null 2>&1
|
||||
then
|
||||
IFCONFIG=${file} ${network_devices}/services/${SERVICE} ${1} down
|
||||
else
|
||||
boot_mesg "Interface ${1} doesn't exist." ${WARNING}
|
||||
echo_warning
|
||||
fi
|
||||
else
|
||||
boot_mesg -n "Unable to process ${file}. Either" ${FAILURE}
|
||||
boot_mesg -n " the SERVICE variable was not set,"
|
||||
boot_mesg " or the specified service cannot be executed."
|
||||
echo_failure
|
||||
continue
|
||||
fi
|
||||
)
|
||||
done
|
||||
|
||||
if [ -z "${2}" ]; then
|
||||
link_status=`ip link show $1 2>/dev/null`
|
||||
if [ -n "${link_status}" ]; then
|
||||
if echo "${link_status}" | grep -q UP; then
|
||||
boot_mesg "Bringing down the ${1} interface..."
|
||||
ip link set ${1} down
|
||||
evaluate_retval
|
||||
fi
|
||||
fi
|
||||
if [ -n "${link_status}" ]; then
|
||||
if echo "${link_status}" | grep -q UP; then
|
||||
boot_mesg "Bringing down the ${IFACE} interface..."
|
||||
ip link set ${IFACE} down
|
||||
evaluate_retval
|
||||
fi
|
||||
fi
|
||||
|
||||
# End $network_devices/ifdown
|
||||
# End /sbin/ifdown
|
||||
|
@ -1,90 +1,82 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $network_devices/ifup
|
||||
# Begin /sbin/ifup
|
||||
#
|
||||
# Description : Interface Up
|
||||
#
|
||||
# Authors : Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
# Notes : the IFCONFIG variable is passed to the scripts found
|
||||
# in the services directory, to indicate what file the
|
||||
# Notes : The IFCONFIG variable is passed to the SERVICE script
|
||||
# in the /lib/boot directory, to indicate what file the
|
||||
# service should source to get environmental variables.
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
file=/etc/sysconfig/ifconfig.${1}
|
||||
|
||||
# Collect a list of configuration files for our interface
|
||||
if [ -n "${2}" ]; then
|
||||
for file in ${@#$1} # All parameters except $1
|
||||
do
|
||||
FILES="${FILES} ${network_devices}/ifconfig.${1}/${file}"
|
||||
done
|
||||
elif [ -d "${network_devices}/ifconfig.${1}" ]; then
|
||||
FILES=`echo ${network_devices}/ifconfig.${1}/*`
|
||||
else
|
||||
FILES="${network_devices}/ifconfig.${1}"
|
||||
fi
|
||||
# Skip backup files
|
||||
[ "${file}" = "${file%""~""}" ] || exit 0
|
||||
|
||||
. /lib/boot/functions
|
||||
|
||||
boot_mesg "Bringing up the ${1} interface..."
|
||||
boot_mesg_flush
|
||||
|
||||
# Process each configruation file
|
||||
for file in ${FILES}; do
|
||||
# skip backup files
|
||||
if [ "${file}" != "${file%""~""}" ]; then
|
||||
continue
|
||||
fi
|
||||
if [ ! -r "${file}" ]; then
|
||||
boot_mesg "${file} is missing or cannot be accessed." ${WARNING}
|
||||
echo_warning
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "${file}" ]; then
|
||||
boot_mesg "${file} is not a network configuration file or directory." ${WARNING}
|
||||
echo_warning
|
||||
continue
|
||||
fi
|
||||
. $file
|
||||
|
||||
(
|
||||
. ${file}
|
||||
if [ "$IFACE" = "" ]; then
|
||||
boot_mesg "${file} does not define an interface [IFACE]." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Will not process this service if started by boot, and ONBOOT
|
||||
# is not set to yes
|
||||
if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
|
||||
continue
|
||||
fi
|
||||
# Will not process this service if started by hotplug, and
|
||||
# ONHOTPLUG is not set to yes
|
||||
if [ "${IN_HOTPLUG}" = "1" -a "${ONHOTPLUG}" != "yes" \
|
||||
-a "${HOSTNAME}" != "(none)" ]; then continue
|
||||
fi
|
||||
# Do not process this service if started by boot, and ONBOOT
|
||||
# is not set to yes
|
||||
if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
|
||||
echo_skipped
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -n "${SERVICE}" -a -x "${network_devices}/services/${SERVICE}" ]; then
|
||||
if [ -z "${CHECK_LINK}" -o "${CHECK_LINK}" = "y" \
|
||||
-o "${CHECK_LINK}" = "yes" -o "${CHECK_LINK}" = "1" ]; then
|
||||
if ip link show ${1} > /dev/null 2>&1; then
|
||||
link_status=`ip link show ${1}`
|
||||
if [ -n "${link_status}" ]; then
|
||||
if ! echo "${link_status}" | grep -q UP; then
|
||||
ip link set ${1} up
|
||||
fi
|
||||
fi
|
||||
else
|
||||
boot_mesg "Interface ${1} doesn't exist." ${WARNING}
|
||||
echo_warning
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
IFCONFIG=${file} ${network_devices}/services/${SERVICE} ${1} up
|
||||
else
|
||||
boot_mesg "Unable to process ${file}. Either" ${FAILURE}
|
||||
boot_mesg " the SERVICE variable was not set,"
|
||||
boot_mesg " or the specified service cannot be executed."
|
||||
echo_failure
|
||||
continue
|
||||
fi
|
||||
)
|
||||
done
|
||||
if [ -n "${SERVICE}" -a -x "/lib/boot/${SERVICE}" ]; then
|
||||
if [ -z "${CHECK_LINK}" -o \
|
||||
"${CHECK_LINK}" = "y" -o \
|
||||
"${CHECK_LINK}" = "yes" -o \
|
||||
"${CHECK_LINK}" = "1" ]; then
|
||||
|
||||
# End $network_devices/ifup
|
||||
# Bring up the interface
|
||||
if ip link show ${IFACE} > /dev/null 2>&1; then
|
||||
link_status=`ip link show ${IFACE}`
|
||||
|
||||
if [ -n "${link_status}" ]; then
|
||||
if ! echo "${link_status}" | grep -q UP; then
|
||||
ip link set ${IFACE} up
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
boot_mesg "Interface ${IFACE} doesn't exist." ${WARNING}
|
||||
echo_warning
|
||||
fi
|
||||
fi
|
||||
|
||||
IFCONFIG=${file} /lib/boot/${SERVICE} ${IFACE} up
|
||||
|
||||
else
|
||||
boot_mesg "Unable to process ${file}. Either" ${FAILURE}
|
||||
boot_mesg "the SERVICE variable was not set"
|
||||
boot_mesg "or the specified service cannot be executed."
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# End /sbin/ifup
|
||||
|
@ -1,82 +1,83 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $network_devices/services/ipv4-static
|
||||
# Begin /lib/boot/ipv4-static
|
||||
#
|
||||
# Description : IPV4 Static Boot Script
|
||||
#
|
||||
# Authors : Nathan Coulson - nathan@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /lib/boot/functions
|
||||
. ${IFCONFIG}
|
||||
|
||||
if [ -z "${IP}" ]; then
|
||||
boot_mesg "IP variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
boot_mesg "IP variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${PREFIX}" -a -z "${PEER}" ]; then
|
||||
boot_mesg -n "PREFIX variable missing from ${IFCONFIG}," ${WARNING}
|
||||
boot_mesg " assuming 24."
|
||||
echo_warning
|
||||
PREFIX=24
|
||||
args="${args} ${IP}/${PREFIX}"
|
||||
boot_mesg -n "PREFIX variable missing from ${IFCONFIG}," ${WARNING}
|
||||
boot_mesg " assuming 24."
|
||||
echo_warning
|
||||
PREFIX=24
|
||||
args="${args} ${IP}/${PREFIX}"
|
||||
|
||||
elif [ -n "${PREFIX}" -a -n "${PEER}" ]; then
|
||||
boot_mesg "PREFIX and PEER both specified in ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
boot_mesg "PREFIX and PEER both specified in ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
|
||||
elif [ -n "${PREFIX}" ]; then
|
||||
args="${args} ${IP}/${PREFIX}"
|
||||
args="${args} ${IP}/${PREFIX}"
|
||||
|
||||
elif [ -n "${PEER}" ]; then
|
||||
args="${args} ${IP} peer ${PEER}"
|
||||
args="${args} ${IP} peer ${PEER}"
|
||||
fi
|
||||
|
||||
if [ -n "${BROADCAST}" ]; then
|
||||
args="${args} broadcast ${BROADCAST}"
|
||||
args="${args} broadcast ${BROADCAST}"
|
||||
fi
|
||||
|
||||
case "${2}" in
|
||||
up)
|
||||
boot_mesg "Adding IPv4 address ${IP} to the ${1} interface..."
|
||||
ip addr add ${args} dev ${1}
|
||||
evaluate_retval
|
||||
|
||||
if [ -n "${GATEWAY}" ]; then
|
||||
if ip route | grep -q default; then
|
||||
boot_mesg "Gateway already setup; skipping." ${WARNING}
|
||||
echo_warning
|
||||
else
|
||||
boot_mesg "Setting up default gateway..."
|
||||
ip route add default via ${GATEWAY} dev ${1}
|
||||
evaluate_retval
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
down)
|
||||
if [ -n "${GATEWAY}" ]; then
|
||||
boot_mesg "Removing default gateway..."
|
||||
ip route del default
|
||||
evaluate_retval
|
||||
fi
|
||||
|
||||
boot_mesg "Removing IPv4 address ${IP} from the ${1} interface..."
|
||||
ip addr del ${args} dev ${1}
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} [interface] {up|down}"
|
||||
exit 1
|
||||
;;
|
||||
up)
|
||||
boot_mesg "Adding IPv4 address ${IP} to the ${1} interface..."
|
||||
ip addr add ${args} dev ${1}
|
||||
evaluate_retval
|
||||
|
||||
if [ -n "${GATEWAY}" ]; then
|
||||
if ip route | grep -q default; then
|
||||
boot_mesg "Gateway already setup; skipping." ${WARNING}
|
||||
echo_warning
|
||||
else
|
||||
boot_mesg "Setting up default gateway..."
|
||||
ip route add default via ${GATEWAY} dev ${1}
|
||||
evaluate_retval
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
down)
|
||||
if [ -n "${GATEWAY}" ]; then
|
||||
boot_mesg "Removing default gateway..."
|
||||
ip route del default
|
||||
evaluate_retval
|
||||
fi
|
||||
|
||||
boot_mesg "Removing IPv4 address ${IP} from the ${1} interface..."
|
||||
ip addr del ${args} dev ${1}
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} [interface] {up|down}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $network_devices/services/ipv4-static
|
||||
# End /lib/boot/ipv4-static
|
||||
|
@ -1,74 +1,72 @@
|
||||
#!/bin/sh
|
||||
########################################################################
|
||||
# Begin $network_devices/services/ipv4-static-route
|
||||
# Begin /lib/boot/ipv4-static-route
|
||||
#
|
||||
# Description : IPV4 Static Route Script
|
||||
#
|
||||
# Authors : Kevin P. Fleming - kpfleming@linuxfromscratch.org
|
||||
# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
|
||||
#
|
||||
# Version : 00.00
|
||||
#
|
||||
# Notes :
|
||||
# Version : LFS 7.0
|
||||
#
|
||||
########################################################################
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. ${rc_functions}
|
||||
. /lib/boot/functions
|
||||
. ${IFCONFIG}
|
||||
|
||||
case "${TYPE}" in
|
||||
("" | "network")
|
||||
need_ip=1
|
||||
need_gateway=1
|
||||
;;
|
||||
("" | "network")
|
||||
need_ip=1
|
||||
need_gateway=1
|
||||
;;
|
||||
|
||||
("default")
|
||||
need_gateway=1
|
||||
args="${args} default"
|
||||
desc="default"
|
||||
;;
|
||||
("default")
|
||||
need_gateway=1
|
||||
args="${args} default"
|
||||
desc="default"
|
||||
;;
|
||||
|
||||
("host")
|
||||
need_ip=1
|
||||
;;
|
||||
("host")
|
||||
need_ip=1
|
||||
;;
|
||||
|
||||
("unreachable")
|
||||
need_ip=1
|
||||
args="${args} unreachable"
|
||||
desc="unreachable "
|
||||
;;
|
||||
("unreachable")
|
||||
need_ip=1
|
||||
args="${args} unreachable"
|
||||
desc="unreachable "
|
||||
;;
|
||||
|
||||
(*)
|
||||
boot_mesg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
;;
|
||||
(*)
|
||||
boot_mesg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "${need_ip}" ]; then
|
||||
if [ -z "${IP}" ]; then
|
||||
boot_mesg "IP variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "${IP}" ]; then
|
||||
boot_mesg "IP variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${PREFIX}" ]; then
|
||||
boot_mesg "PREFIX variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
args="${args} ${IP}/${PREFIX}"
|
||||
desc="${desc}${IP}/${PREFIX}"
|
||||
if [ -z "${PREFIX}" ]; then
|
||||
boot_mesg "PREFIX variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
|
||||
args="${args} ${IP}/${PREFIX}"
|
||||
desc="${desc}${IP}/${PREFIX}"
|
||||
fi
|
||||
|
||||
if [ -n "${need_gateway}" ]; then
|
||||
if [ -z "${GATEWAY}" ]; then
|
||||
boot_mesg "GATEWAY variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
args="${args} via ${GATEWAY}"
|
||||
if [ -z "${GATEWAY}" ]; then
|
||||
boot_mesg "GATEWAY variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
|
||||
echo_failure
|
||||
exit 1
|
||||
fi
|
||||
args="${args} via ${GATEWAY}"
|
||||
fi
|
||||
|
||||
if [ -n "${SOURCE}" ]; then
|
||||
@ -76,22 +74,22 @@ if [ -n "${SOURCE}" ]; then
|
||||
fi
|
||||
|
||||
case "${2}" in
|
||||
up)
|
||||
boot_mesg "Adding '${desc}' route to the ${1} interface..."
|
||||
ip route add ${args} dev ${1}
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
down)
|
||||
boot_mesg "Removing '${desc}' route from the ${1} interface..."
|
||||
ip route del ${args} dev ${1}
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} [interface] {up|down}"
|
||||
exit 1
|
||||
;;
|
||||
up)
|
||||
boot_mesg "Adding '${desc}' route to the ${1} interface..."
|
||||
ip route add ${args} dev ${1}
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
down)
|
||||
boot_mesg "Removing '${desc}' route from the ${1} interface..."
|
||||
ip route del ${args} dev ${1}
|
||||
evaluate_retval
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: ${0} [interface] {up|down}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# End $network_devices/services/ipv4-static-route
|
||||
# End /bib/boot/ipv4-static-route
|
||||
|
@ -36,6 +36,27 @@
|
||||
</listitem>
|
||||
|
||||
-->
|
||||
<listitem>
|
||||
<para>2011-08-01</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>[bdubbs] - Rewrite bootscripts and Chaper 7.</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>Make scripts compatible with initd format (see BLFS).</para></listitem>
|
||||
<listitem><para>Move functions and services to /lib/boot.</para></listitem>
|
||||
<listitem><para>Log boot messages to /run/var/bootlog.</para></listitem>
|
||||
<listitem><para>Move ifup/ifdown to /sbin.</para></listitem>
|
||||
<listitem><para>Move network device configuration files to
|
||||
/etc/sysconfig/ifconfig.*.</para></listitem>
|
||||
<listitem><para>Add IFACE variable to network configuration files.
|
||||
</para></listitem>
|
||||
<listitem><para>Read optional configuration file /etc/sysconfig/init_params
|
||||
in functions.</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>2011-07-17</para>
|
||||
<itemizedlist>
|
||||
|
@ -74,52 +74,6 @@
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="conf-sysvinit" role="configuration">
|
||||
<title>Configuring Sysvinit</title>
|
||||
|
||||
<indexterm zone="conf-sysvinit">
|
||||
<primary sortas="a-Sysvinit">Sysvinit</primary>
|
||||
<secondary>configuring</secondary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="conf-sysvinit">
|
||||
<primary sortas="e-/etc/inittab">/etc/inittab</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>Create a new file <filename>/etc/inittab</filename> by running the
|
||||
following:</para>
|
||||
|
||||
<screen><userinput>cat > /etc/inittab << "EOF"
|
||||
<literal># Begin /etc/inittab
|
||||
|
||||
id:3:initdefault:
|
||||
|
||||
si::sysinit:/etc/rc.d/init.d/rc sysinit
|
||||
|
||||
l0:0:wait:/etc/rc.d/init.d/rc 0
|
||||
l1:S1:wait:/etc/rc.d/init.d/rc 1
|
||||
l2:2:wait:/etc/rc.d/init.d/rc 2
|
||||
l3:3:wait:/etc/rc.d/init.d/rc 3
|
||||
l4:4:wait:/etc/rc.d/init.d/rc 4
|
||||
l5:5:wait:/etc/rc.d/init.d/rc 5
|
||||
l6:6:wait:/etc/rc.d/init.d/rc 6
|
||||
|
||||
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
|
||||
|
||||
su:S016:once:/sbin/sulogin
|
||||
|
||||
1:2345:respawn:/sbin/agetty tty1 9600
|
||||
2:2345:respawn:/sbin/agetty tty2 9600
|
||||
3:2345:respawn:/sbin/agetty tty3 9600
|
||||
4:2345:respawn:/sbin/agetty tty4 9600
|
||||
5:2345:respawn:/sbin/agetty tty5 9600
|
||||
6:2345:respawn:/sbin/agetty tty6 9600
|
||||
|
||||
# End /etc/inittab</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="contents-sysvinit" role="content">
|
||||
<title>Contents of Sysvinit</title>
|
||||
|
||||
|
@ -49,7 +49,6 @@
|
||||
|
||||
<sect2 id="contents-bootscripts" role="content">
|
||||
<title>Contents of LFS-Bootscripts</title>
|
||||
|
||||
<segmentedlist>
|
||||
<segtitle>Installed scripts</segtitle>
|
||||
<segtitle>Installed directories</segtitle>
|
||||
@ -59,7 +58,7 @@
|
||||
ifup, localnet, modules, mountfs, mountkernfs, network, rc, reboot,
|
||||
sendsignals, setclock, static, swap, sysctl, sysklogd, template,
|
||||
udev, and udev_retry</seg>
|
||||
<seg>/etc/rc.d, /etc/sysconfig</seg>
|
||||
<seg>/etc/rc.d, /etc/sysconfig, /lib/boot</seg>
|
||||
</seglistitem>
|
||||
</segmentedlist>
|
||||
|
||||
@ -140,7 +139,7 @@
|
||||
<varlistentry id="ifdown-bootscripts">
|
||||
<term><command>ifdown</command></term>
|
||||
<listitem>
|
||||
<para>Assists the network script with stopping network devices</para>
|
||||
<para>Stops a network device</para>
|
||||
<indexterm zone="ch-scripts-bootscripts ifdown-bootscripts">
|
||||
<primary sortas="d-ifdown">ifdown</primary>
|
||||
</indexterm>
|
||||
@ -150,7 +149,7 @@
|
||||
<varlistentry id="ifup-bootscripts">
|
||||
<term><command>ifup</command></term>
|
||||
<listitem>
|
||||
<para>Assists the network script with starting network devices</para>
|
||||
<para>Initializes a network device</para>
|
||||
<indexterm zone="ch-scripts-bootscripts ifup-bootscripts">
|
||||
<primary sortas="d-ifup">ifup</primary>
|
||||
</indexterm>
|
||||
@ -325,7 +324,7 @@
|
||||
<term><command>udev_retry</command></term>
|
||||
<listitem>
|
||||
<para>Retries failed udev uevents, and copies generated rules
|
||||
files from <filename class="directory">/dev/.udev</filename> to
|
||||
files from to
|
||||
<filename class="directory">/etc/udev/rules.d</filename> if required</para>
|
||||
<indexterm zone="ch-scripts-bootscripts udev-retry-bootscripts">
|
||||
<primary sortas="d-udev-retry">udev_retry</primary>
|
||||
|
@ -12,17 +12,17 @@
|
||||
<title>Setting Up System Bootscripts</title>
|
||||
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="network.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hosts.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="udev.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="symlinks.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="bootscripts.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="usage.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hostname.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="setclock.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="console.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sysklogd.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="inputrc.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="profile.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="udev.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="symlinks.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hostname.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hosts.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="network.xml"/>
|
||||
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="inputrc.xml"/>
|
||||
|
||||
</chapter>
|
||||
|
@ -8,10 +8,10 @@
|
||||
<sect1 id="ch-scripts-hostname">
|
||||
<?dbhtml filename="hostname.html"?>
|
||||
|
||||
<title>Configuring the localnet Script</title>
|
||||
<title>Configuring the system hostname</title>
|
||||
|
||||
<indexterm zone="ch-scripts-hostname">
|
||||
<primary sortas="d-localnet">localnet</primary>
|
||||
<primary sortas="d-hostname">hostname</primary>
|
||||
<secondary>configuring</secondary>
|
||||
</indexterm>
|
||||
|
||||
@ -26,7 +26,6 @@
|
||||
|
||||
<para><replaceable><lfs></replaceable> needs to be replaced with the name given
|
||||
to the computer. Do not enter the Fully Qualified Domain Name (FQDN) here. That
|
||||
information will be put in the <filename>/etc/hosts</filename> file in the next
|
||||
section.</para>
|
||||
information is put in the <filename>/etc/hosts</filename> file.</para>
|
||||
|
||||
</sect1>
|
||||
|
@ -61,7 +61,7 @@ EOF</userinput></screen>
|
||||
|
||||
<para>The <replaceable><192.168.1.1></replaceable> and
|
||||
<replaceable><HOSTNAME.example.org></replaceable>
|
||||
values need to be changed for specific users or requirements (if
|
||||
values need to be changed for specific uses or requirements (if
|
||||
assigned an IP address by a network/system administrator and the
|
||||
machine will be connected to an existing network). The optional alias
|
||||
name(s) can be omitted.</para>
|
||||
|
@ -10,18 +10,81 @@
|
||||
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>This chapter details how to install and configure the LFS-Bootscripts
|
||||
package. Most of these scripts will work without modification, but a few require
|
||||
additional configuration files because they deal with hardware-dependent
|
||||
information.</para>
|
||||
<para>This chapter discusses configuration files and boot scripts.
|
||||
First, the general configuration files needed to set up networking are
|
||||
presented.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-network" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-hosts" role="."/></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Second, issues that affect the proper setup of devices diescussed.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-udev" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-symlinks" role="."/></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>The next sections detail how to install and configure the LFS system
|
||||
scripts needed during the boot process. Most of these scripts will work
|
||||
without modification, but a few require additional configuration files
|
||||
because they deal with hardware-dependent information.</para>
|
||||
|
||||
<para>System-V style init scripts are employed in this book because they are
|
||||
widely used. For additional options, a hint detailing the BSD style init setup
|
||||
is available at <ulink url="&hints-root;bsd-init.txt"/>.
|
||||
Searching the LFS mailing lists for <quote>depinit</quote> will also offer
|
||||
additional choices.</para>
|
||||
widely used and relatively simple. For additional options, a hint detailing
|
||||
the BSD style init setup is available at <ulink
|
||||
url="&hints-root;bsd-init.txt"/>. Searching the LFS mailing lists for
|
||||
<quote>depinit</quote>, <quote>upstart</quote>, or <quote>systemd</quote>
|
||||
will also offer additional information.</para>
|
||||
|
||||
<para>If using an alternative style of init scripts, skip these sections.</para>
|
||||
|
||||
<para>A listing of the boot scripts are found in <xref linkend="scripts"
|
||||
role="."/>.</para>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-bootscripts" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-usage" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-hostname" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-setclock" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-console" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-sysklogd" role="."/></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
||||
<para>Finally, there is a brief introduction to the scripts and configuration
|
||||
files used when the user logs into the system.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-profile" role="."/></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><xref linkend="ch-scripts-inputrc" role="."/></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>If using an alternative style of init scripts, skip this chapter
|
||||
and move on to <xref linkend="chapter-bootable"/>.</para>
|
||||
|
||||
</sect1>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<sect1 id="ch-scripts-network">
|
||||
<?dbhtml filename="network.html"?>
|
||||
|
||||
<title>Configuring the network Script</title>
|
||||
<title>General Network Configuration</title>
|
||||
|
||||
<indexterm zone="ch-scripts-network">
|
||||
<primary sortas="d-network">network</primary>
|
||||
@ -26,6 +26,11 @@
|
||||
<sect2>
|
||||
<title>Creating stable names for network interfaces</title>
|
||||
|
||||
<para>If there is only one network interface in the system to be
|
||||
configured, this section is optional, although it will never be wrong to do
|
||||
it. In many cases (e.g. a laptop with a wireless and a wired interface),
|
||||
accomplishing the configuration in this section is necessary.</para>
|
||||
|
||||
<para>With Udev and modular network drivers, the network interface numbering
|
||||
is not persistent across reboots by default, because the drivers are loaded
|
||||
in parallel and, thus, in random order. For example, on a computer having
|
||||
@ -112,21 +117,22 @@ done</userinput></screen>
|
||||
<title>Creating Network Interface Configuration Files</title>
|
||||
|
||||
<para>Which interfaces are brought up and down by the network script
|
||||
depends on the files and directories in the <filename
|
||||
class="directory">/etc/sysconfig/network-devices</filename> hierarchy.
|
||||
This directory should contain a sub-directory for each interface to be
|
||||
configured, such as <filename>ifconfig.xyz</filename>, where
|
||||
<quote>xyz</quote> is a network interface name. Inside this directory
|
||||
would be files defining the attributes to this interface, such as its IP
|
||||
address(es), subnet masks, and so forth.</para>
|
||||
depends on the files in <filename
|
||||
class="directory">/etc/sysconfig/</filename>. This directory should
|
||||
contain a file for each interface to be configured, such as
|
||||
<filename>ifconfig.xyz</filename>, where <quote>xyz</quote> is is
|
||||
meaningful to the administrator such as the device name (e.g. eth0).
|
||||
Inside this file are attributes to this interface, such as its IP
|
||||
address(es), subnet masks, and so forth. It is necessary that
|
||||
the stem of the filename be <emphasis>ifconfig</emphasis>.</para>
|
||||
|
||||
<para>The following command creates a sample <filename>ipv4</filename>
|
||||
file for the <emphasis>eth0</emphasis> device:</para>
|
||||
<para>The following command creates a sample file for the
|
||||
<emphasis>eth0</emphasis> device with a static IP address:</para>
|
||||
|
||||
<screen><userinput>cd /etc/sysconfig/network-devices
|
||||
mkdir -v ifconfig.eth0
|
||||
cat > ifconfig.eth0/ipv4 << "EOF"
|
||||
<screen><userinput>cd /etc/sysconfig/
|
||||
cat > ifconfig.eth0 << "EOF"
|
||||
<literal>ONBOOT=yes
|
||||
IFACE=eth0
|
||||
SERVICE=ipv4-static
|
||||
IP=192.168.1.1
|
||||
GATEWAY=192.168.1.2
|
||||
@ -135,19 +141,25 @@ BROADCAST=192.168.1.255</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>The values of these variables must be changed in every file to match
|
||||
the proper setup. If the <envar>ONBOOT</envar> variable is set to
|
||||
<quote>yes</quote> the network script will bring up the Network Interface
|
||||
Card (NIC) during booting of the system. If set to anything but
|
||||
<quote>yes</quote> the NIC will be ignored by the network script and not
|
||||
be brought up.</para>
|
||||
the proper setup.</para>
|
||||
|
||||
<para>If the <envar>ONBOOT</envar> variable is set to <quote>yes</quote> the
|
||||
network script will bring up the Network Interface Card (NIC) during
|
||||
booting of the system. If set to anything but <quote>yes</quote> the NIC
|
||||
will be ignored by the network script and not be automatically brought up.
|
||||
The interface can be manually started or stopped with the
|
||||
<command>ifup</command> and <command>ifdown</command> commands.</para>
|
||||
|
||||
<para>The <envar>IFACE</envar> variable defines the interface name,
|
||||
for example, eth0. It is required for all network device configuration
|
||||
files. </para>
|
||||
|
||||
<para>The <envar>SERVICE</envar> variable defines the method used for
|
||||
obtaining the IP address. The LFS-Bootscripts package has a modular IP
|
||||
assignment format, and creating additional files in the <filename
|
||||
class="directory">/etc/sysconfig/network-devices/services</filename>
|
||||
directory allows other IP assignment methods. This is commonly used for
|
||||
Dynamic Host Configuration Protocol (DHCP), which is addressed in the
|
||||
BLFS book.</para>
|
||||
class="directory">/lib/boot/</filename> directory allows other IP
|
||||
assignment methods. This is commonly used for Dynamic Host Configuration
|
||||
Protocol (DHCP), which is addressed in the BLFS book.</para>
|
||||
|
||||
<para>The <envar>GATEWAY</envar> variable should contain the default
|
||||
gateway IP address, if one is present. If not, then comment out the
|
||||
@ -189,6 +201,10 @@ nameserver <replaceable><IP address of your secondary nameserver></replace
|
||||
# End /etc/resolv.conf</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>The <varname>domain</varname> statement can be omitted
|
||||
or replaced with a <varname>search</varname> statement. See the man page for
|
||||
resolv.conf for more details.</para>
|
||||
|
||||
<para>Replace <replaceable><IP address of the nameserver></replaceable>
|
||||
with the IP address of the DNS most appropriate for the setup. There will
|
||||
often be more than one entry (requirements demand secondary servers for
|
||||
@ -196,6 +212,8 @@ EOF</userinput></screen>
|
||||
second <emphasis>nameserver</emphasis> line from the file. The IP address
|
||||
may also be a router on the local network.</para>
|
||||
|
||||
<note><para>The Google Public IPv4 DNS addresses are 8.8.8.8 and 8.8.4.4.</para></note>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
@ -62,4 +62,7 @@ EOF</userinput></screen>
|
||||
at <ulink url="&hints-root;time.txt"/>. It explains issues such as
|
||||
time zones, UTC, and the <envar>TZ</envar> environment variable.</para>
|
||||
|
||||
<note><para>The CLOCKPARAMS and UTC paramaters may be alternatively set
|
||||
in the <filename>/etc/sysconfig/init_params</filename> file.</para></note>
|
||||
|
||||
</sect1>
|
||||
|
@ -16,11 +16,16 @@
|
||||
</indexterm>
|
||||
|
||||
<para>The <filename>sysklogd</filename> script invokes the
|
||||
<command>syslogd</command> program with the <parameter>-m 0</parameter> option.
|
||||
This option turns off the periodic timestamp mark that
|
||||
<command>syslogd</command> writes to the log files every 20 minutes by default.
|
||||
If you want to turn on this periodic timestamp mark, edit the
|
||||
<filename>sysklogd</filename> script and make the changes accordingly. See
|
||||
<userinput>man syslogd</userinput> for more information.</para>
|
||||
<command>syslogd</command> program with the <parameter>-m 0</parameter>
|
||||
option. This option turns off the periodic timestamp mark that
|
||||
<command>syslogd</command> writes to the log files every 20 minutes by
|
||||
default. If you want to turn on this periodic timestamp mark, create or edit
|
||||
<filename>/etc/sysconfig/init_params</filename> and define the variable
|
||||
SYSKLOGD_PARMS to the desired value. For instance, to remove all parameters,
|
||||
set the variable to a null value:</para>
|
||||
|
||||
<screen role="nodump">SYSKLOGD_PARMS=</screen>
|
||||
|
||||
<para>See <userinput>man syslogd</userinput> for more options.</para>
|
||||
|
||||
</sect1>
|
||||
|
@ -95,7 +95,7 @@
|
||||
<sect3>
|
||||
<title>Udev Bootscript</title>
|
||||
|
||||
<para>The <command>S10udev</command> initscript takes care of creating
|
||||
<para>The <command>/etc/rc.d/init.d/udev</command> initscript takes care of creating
|
||||
device nodes when Linux is booted. The script unsets the uevent handler
|
||||
from the default of <command>/sbin/hotplug</command>. This is done
|
||||
because the kernel no longer needs to call out to an external binary.
|
||||
@ -200,7 +200,7 @@
|
||||
class="filesystem">sysfs</systemitem>. In other cases, one should
|
||||
arrange module loading by other means. With Linux-&linux-version;, Udev is
|
||||
known to load properly-written drivers for INPUT, IDE, PCI, USB, SCSI,
|
||||
SERIO and FireWire devices.</para>
|
||||
SERIO, and FireWire devices.</para>
|
||||
|
||||
<para>To determine if the device driver you require has the necessary
|
||||
support for Udev, run <command>modinfo</command> with the module name as
|
||||
@ -243,7 +243,7 @@
|
||||
/sbin/modprobe snd-pcm-oss ; true</literal></screen>
|
||||
|
||||
<para>If the module in question is not a wrapper and is useful by itself,
|
||||
configure the <command>S05modules</command> bootscript to load this
|
||||
configure the <command>modules</command> bootscript to load this
|
||||
module on system boot. To do this, add the module name to the
|
||||
<filename>/etc/sysconfig/modules</filename> file on a separate line.
|
||||
This works for wrapper modules too, but is suboptimal in that case.</para>
|
||||
@ -306,7 +306,7 @@
|
||||
documentation or the documentation provided by the third party driver
|
||||
vendor). The static device node will be copied to
|
||||
<filename class="directory">/dev</filename> by the
|
||||
<command>S10udev</command> bootscript.</para>
|
||||
<command>udev</command> bootscript.</para>
|
||||
|
||||
</sect3>
|
||||
|
||||
|
@ -37,7 +37,80 @@
|
||||
5: same as 4, it is usually used for GUI login (like X's <command>xdm</command> or KDE's <command>kdm</command>)
|
||||
6: reboot the computer</literallayout>
|
||||
|
||||
<para>The command used to change run-levels is <command>init
|
||||
<sect2 id="conf-sysvinit" role="configuration">
|
||||
<title>Configuring Sysvinit</title>
|
||||
|
||||
<indexterm zone="conf-sysvinit">
|
||||
<primary sortas="a-Sysvinit">Sysvinit</primary>
|
||||
<secondary>configuring</secondary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="conf-sysvinit">
|
||||
<primary sortas="e-/etc/inittab">/etc/inittab</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>During the kernel initialization, the first program that is run
|
||||
is either specified on the command line or, by default
|
||||
<command>init</command>. This program reads the initialization file
|
||||
<filename>/etc/inittab</filename>. Create this file with:</para>
|
||||
|
||||
<screen><userinput>cat > /etc/inittab << "EOF"
|
||||
<literal># Begin /etc/inittab
|
||||
|
||||
id:3:initdefault:
|
||||
|
||||
si::sysinit:/etc/rc.d/init.d/rc sysinit
|
||||
|
||||
l0:0:wait:/etc/rc.d/init.d/rc 0
|
||||
l1:S1:wait:/etc/rc.d/init.d/rc 1
|
||||
l2:2:wait:/etc/rc.d/init.d/rc 2
|
||||
l3:3:wait:/etc/rc.d/init.d/rc 3
|
||||
l4:4:wait:/etc/rc.d/init.d/rc 4
|
||||
l5:5:wait:/etc/rc.d/init.d/rc 5
|
||||
l6:6:wait:/etc/rc.d/init.d/rc 6
|
||||
|
||||
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
|
||||
|
||||
su:S016:once:/sbin/sulogin
|
||||
|
||||
1:2345:respawn:/sbin/agetty tty1 9600
|
||||
2:2345:respawn:/sbin/agetty tty2 9600
|
||||
3:2345:respawn:/sbin/agetty tty3 9600
|
||||
4:2345:respawn:/sbin/agetty tty4 9600
|
||||
5:2345:respawn:/sbin/agetty tty5 9600
|
||||
6:2345:respawn:/sbin/agetty tty6 9600
|
||||
|
||||
# End /etc/inittab</literal>
|
||||
EOF</userinput></screen>
|
||||
|
||||
<para>An explanation of this initialization file is in the man page for
|
||||
<emphasis>inittab</emphasis>. For LFS, the key command that is run is
|
||||
<command>rc</command>. The intialization file above will instruct
|
||||
<command>rc</command> to run all the scripts starting with an S in the
|
||||
<filename class="directory">/etc/rc.d/rcsysinit.d</filename> directory
|
||||
followed by all the scripts starting with an S in the <filename
|
||||
class="directory">/etc/rc.d/rc?.d</filename> directory where the question
|
||||
mark is specified by the initdefault value.</para>
|
||||
|
||||
<para>As a convenience, the <command>rc</command> script reads a library of
|
||||
functions in <filename class="directory">/lib/boot/functions</filename>.
|
||||
This library also reads an optional configuration file,
|
||||
<filename>/etc/sysconfig/init_params</filename>. Any of the system
|
||||
configuration file parameters described in subsequent sections can be
|
||||
alternatively placed in this file allowing consolidation of all system
|
||||
parameters in thsi one file.</para>
|
||||
|
||||
<para>As a debugging convenience, the functions script also logs all output
|
||||
to <filename>/run/var/bootlog</filename>. Since the <filename
|
||||
class="directory">/run</filename> directory is a tmpfs, this file is not
|
||||
persistent across boots.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="init-levels" >
|
||||
<title>Changing Run Levels</title>
|
||||
|
||||
<para>Changing run-levels is done with <command>init
|
||||
<replaceable><runlevel></replaceable></command>, where
|
||||
<replaceable><runlevel></replaceable> is the target run-level. For example, to
|
||||
reboot the computer, a user could issue the <command>init 6</command> command,
|
||||
@ -59,7 +132,7 @@
|
||||
|
||||
<para>The real scripts are in <filename
|
||||
class="directory">/etc/rc.d/init.d</filename>. They do the actual work, and
|
||||
the symlinks all point to them. Killing links and starting links point to
|
||||
the symlinks all point to them. K links and S links point to
|
||||
the same script in <filename class="directory">/etc/rc.d/init.d</filename>.
|
||||
This is because the scripts can be called with different parameters like
|
||||
<parameter>start</parameter>, <parameter>stop</parameter>,
|
||||
@ -126,4 +199,6 @@
|
||||
it is your own LFS system). The files given here are an example of how
|
||||
it can be done.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!ENTITY version "SVN-20110717">
|
||||
<!ENTITY releasedate "July 17, 2011">
|
||||
<!ENTITY version "SVN-20110801">
|
||||
<!ENTITY releasedate "Aug 1, 2011">
|
||||
<!ENTITY copyrightdate "1999-2011"><!-- jhalfs needs a literal dash, not – -->
|
||||
<!ENTITY milestone "6.9">
|
||||
<!ENTITY milestone "7.0">
|
||||
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->
|
||||
|
||||
<!ENTITY lfs-root "http://www.linuxfromscratch.org/">
|
||||
|
@ -297,7 +297,7 @@
|
||||
<!ENTITY less-ch6-du "3.5 MB">
|
||||
<!ENTITY less-ch6-sbu "less than 0.1 SBU">
|
||||
|
||||
<!ENTITY lfs-bootscripts-version "20110531"> <!-- Scripts depend on this format -->
|
||||
<!ENTITY lfs-bootscripts-version "20110801"> <!-- Scripts depend on this format -->
|
||||
<!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB"> <!-- Updated in Makefile -->
|
||||
<!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.bz2">
|
||||
<!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM"> <!-- Updated in Makefile -->
|
||||
|
@ -111,8 +111,8 @@
|
||||
<varlistentry>
|
||||
<term><emphasis>LSB Core:</emphasis></term>
|
||||
<listitem>
|
||||
<para>Bc, Cpio, Ed, Fcrontab, PAM, Sendmail (or Postfix or Exim)
|
||||
</para>
|
||||
<para>Bc, Cpio, Ed, Fcrontab, Initd-tools, PAM,
|
||||
Sendmail (or Postfix or Exim) </para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
@ -164,7 +164,7 @@
|
||||
<varlistentry>
|
||||
<term><emphasis>LSB Core:</emphasis></term>
|
||||
<listitem>
|
||||
<para>At, Batch, Install_initd, Lsb_release, Remove_initd, Test
|
||||
<para>At, Batch, Lsb_release
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
Loading…
Reference in New Issue
Block a user