Move /etc/conf.d/rc to /etc/rc.conf.
Lowercase all configurable variables, non configurations remain uppercase. Replace rc_env_bool with rc_yesno. Split localmount info procfs (Linux) and dumpon, savecore (BSD)
This commit is contained in:
parent
f077f179ed
commit
d81def80b0
@ -2,14 +2,10 @@
|
||||
|
||||
# Set to your mouse device psm[0-9] for PS/2 ports, ums[0-9] for USB ports
|
||||
# Leave blank to try to autodetect it
|
||||
MOUSED_DEVICE=""
|
||||
#moused_device="/dev/psm0"
|
||||
|
||||
# Any additional arguments required
|
||||
MOUSED_ARGS=""
|
||||
|
||||
# If 0xd0-0xd3 default range is occupied in your language code table, specify
|
||||
# alternative range start like MOUSECHAR_START="3", see vidcontrol(1)
|
||||
MOUSECHAR_START=""
|
||||
moused_args=""
|
||||
|
||||
# You can also multiplex the init script for each device like so
|
||||
# ln -s moused /etc/init.d/moused.ums0
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Mode allowed: maximum, minimum, adaptive
|
||||
# Default unless specified is adaptive
|
||||
AC_MODE="maximum"
|
||||
#BATTERY_MODE="minimum"
|
||||
powerd_ac_mode="maximum"
|
||||
#powerd_battery_mode="minimum"
|
||||
|
||||
# Addiditonal arguments for powerd
|
||||
POWERD_OPTS=""
|
||||
# Addiditonal arguments for powerd - see the man page for details
|
||||
powerd_args=""
|
||||
|
@ -1,3 +1,3 @@
|
||||
# To start rarpd only for a given interface, set the
|
||||
# following variable. Otherwise we listen on all interfaces.
|
||||
#RARPD_INTERFACE="rl0"
|
||||
#rarpd_interface="rl0"
|
||||
|
@ -4,16 +4,16 @@
|
||||
# NOTE:- This will blank the screen after this command is run
|
||||
# NOTE:- You can get more modes if you load the vesa kernel module, but this
|
||||
# may require the SC_PIXEL_MODE kernel option
|
||||
#MODE="VGA_80x30"
|
||||
#allscreen_flags="VGA_80x30"
|
||||
|
||||
# Set the keymap to "uk.iso".
|
||||
#KEYMAP="uk.iso"
|
||||
#keymap="uk.iso"
|
||||
|
||||
# Set the keyboard rate to 250ms delay, and 34 repeat rate.
|
||||
#KEYRATE="250.34"
|
||||
#keyrate="250.34"
|
||||
|
||||
# Change the behaviour of F-unction keys (see kbdcontrol(1)).
|
||||
#KEYCHANGE="10 'ssh myhost'"
|
||||
#keychange="10 'ssh myhost'"
|
||||
|
||||
# See vidcontrol(1) -t
|
||||
#BLANKTIME="off"
|
||||
#blanktime="off"
|
||||
|
@ -1,6 +1,6 @@
|
||||
DIR = /etc/conf.d
|
||||
CONF = consolefont keymaps net.example
|
||||
CONF_APPEND = clock rc
|
||||
CONF_APPEND = clock
|
||||
|
||||
TOPDIR = ..
|
||||
include $(TOPDIR)/default.mk
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
# Put a nologin file in /etc to prevent people from logging in before
|
||||
# system startup is complete
|
||||
DELAYLOGIN="no"
|
||||
delaylogin="no"
|
||||
|
||||
# List of /tmp directories we should clean up
|
||||
WIPE_TMP_DIRS="/tmp"
|
||||
wipe_tmp_dirs="/tmp"
|
||||
|
||||
# Should we wipe the tmp paths completely or just selectively remove known
|
||||
# locks / files / etc... ?
|
||||
WIPE_TMP="yes"
|
||||
wipe_tmp="yes"
|
||||
|
@ -1,7 +1,7 @@
|
||||
# FSCK_SHUTDOWN causes checkfs to trigger during shutdown as well as startup.
|
||||
# fsck_shutdown causes checkfs to trigger during shutdown as well as startup.
|
||||
# The end result of this is that if any periodic non-root filesystem checks are
|
||||
# scheduled, under normal circumstances the actual check will happen during
|
||||
# shutdown rather than at next boot.
|
||||
# This is useful when periodic filesystem checks are causing undesirable
|
||||
# delays at startup, but such delays at shutdown are acceptable.
|
||||
FSCK_SHUTDOWN="no"
|
||||
fsck_shutdown="NO"
|
||||
|
13
conf.d/clock
13
conf.d/clock
@ -4,16 +4,9 @@
|
||||
# Greenwich Mean Time). If your clock is set to the local time, then
|
||||
# set CLOCK to "local". Note that if you dual boot with Windows, then
|
||||
# you should set it to "local".
|
||||
CLOCK="UTC"
|
||||
clock="UTC"
|
||||
|
||||
# If you want to set the Hardware Clock to the current System Time
|
||||
# during shutdown, then say "yes" here.
|
||||
# during shutdown, then say "YES" here.
|
||||
# You normally don't need to do this if you run a ntp daemon.
|
||||
CLOCK_SYSTOHC="no"
|
||||
|
||||
# Select the proper timezone. For valid values, peek inside of the
|
||||
# /usr/share/zoneinfo/ directory. For example, some common values are
|
||||
# "America/New_York" or "EST5EDT" or "Europe/Berlin". If you want to
|
||||
# manage /etc/localtime yourself, set this to "".
|
||||
TIMEZONE="Factory"
|
||||
|
||||
clock_systohc="NO"
|
||||
|
@ -1,2 +1,2 @@
|
||||
# Set to the hostname of this machine
|
||||
HOSTNAME="localhost"
|
||||
hostname="localhost"
|
||||
|
@ -4,4 +4,4 @@
|
||||
# (say for crypt swap), so you will need to customize this
|
||||
# behavior. If you have /var on a separate partition, then
|
||||
# make sure this path lives on your root device somewhere.
|
||||
URANDOM_SEED="/var/run/random-seed"
|
||||
urandom_seed="/var/run/random-seed"
|
||||
|
@ -41,6 +41,7 @@ install::
|
||||
install:: $(BIN) $(CONF) $(CONF_APPEND)
|
||||
if test -n "$(DIR)" ; then $(INSTALL) -d $(DESTDIR)$(DIR) || exit $$?; fi
|
||||
if test -n "$(BIN)" ; then $(INSTALL) $(BIN) $(DESTDIR)$(DIR) || exit $$?; fi
|
||||
if test -n "$(INC)" ; then $(INSTALL) -m 0644 $(INC) $(DESTDIR)$(DIR) || exit $$?; fi
|
||||
for x in $(CONF); do \
|
||||
if ! test -e $(DESTDIR)$(DIR)/$$x; then \
|
||||
$(INSTALL) -m 0644 $$x $(DESTDIR)$(DIR) || exit $$?; \
|
||||
|
@ -1,5 +1,6 @@
|
||||
DIR = /etc
|
||||
CONF = inittab
|
||||
CONF_APPEND = rc
|
||||
|
||||
TOPDIR = ..
|
||||
include $(TOPDIR)/default.mk
|
||||
|
@ -4,16 +4,7 @@
|
||||
|
||||
# This is the number of tty's used in most of the rc-scripts (like
|
||||
# consolefont, numlock, etc ...)
|
||||
RC_TTY_NUMBER=12
|
||||
|
||||
# RC_DOWN_INTERFACE allows you to specify if RC will bring the interface
|
||||
# completely down when it stops. The default is yes, but there are some
|
||||
# instances where you may not want this to happen such as using Wake On LAN.
|
||||
RC_DOWN_INTERFACE="yes"
|
||||
|
||||
# RC_DOWN_HARDDISK allows you to specify if RC will put harddisks to
|
||||
# standby mode when it stops.
|
||||
RC_DOWN_HARDDISK="yes"
|
||||
rc_tty_number=12
|
||||
|
||||
# Use this variable to control the /dev management behavior.
|
||||
# auto - let the scripts figure out what's best at boot
|
||||
@ -21,7 +12,7 @@ RC_DOWN_HARDDISK="yes"
|
||||
# mdev - use mdev (requires sys-apps/busybox)
|
||||
# udev - use udev (requires sys-fs/udev)
|
||||
# static - let the user manage /dev (YOU need to create ALL device nodes)
|
||||
RC_DEVICES="auto"
|
||||
rc_devices="auto"
|
||||
|
||||
# UDEV OPTION:
|
||||
# Set to "yes" if you want to save /dev to a tarball on shutdown
|
||||
@ -29,7 +20,6 @@ RC_DEVICES="auto"
|
||||
# custom device nodes that udev does not handle/know about.
|
||||
RC_DEVICE_TARBALL="no"
|
||||
|
||||
# RC_DMESG_LEVEL sets the level at which logging of messages is done to the
|
||||
# Sets the level at which logging of messages is done to the
|
||||
# console. See dmesg(8) for more info.
|
||||
RC_DMESG_LEVEL="1"
|
||||
|
||||
dmesg_level="1"
|
5
etc/Makefile
Normal file
5
etc/Makefile
Normal file
@ -0,0 +1,5 @@
|
||||
DIR = /etc
|
||||
CONF = rc.conf
|
||||
|
||||
TOPDIR = ..
|
||||
include $(TOPDIR)/default.mk
|
@ -1,68 +1,59 @@
|
||||
# /etc/conf.d/rc: Global config file for OpenRC
|
||||
# /etc/rc.conf: Global OpenRC configuration settings
|
||||
|
||||
# Set to "yes" if you want the rc system to try and start services
|
||||
# Set to "YES" if you want the rc system to try and start services
|
||||
# in parallel for a slight speed improvement. When running in parallel we
|
||||
# prefix the service output with it's name as the output will get
|
||||
# jumbled up.
|
||||
RC_PARALLEL="no"
|
||||
rc_parallel="NO"
|
||||
|
||||
# Set RC_INTERACTIVE to "yes" and you'll be able to press the I key during
|
||||
# boot so you can choose to start specific services. Set to "no" to disable
|
||||
# Set rc_interactive to "YES" and you'll be able to press the I key during
|
||||
# boot so you can choose to start specific services. Set to "NO" to disable
|
||||
# this feature.
|
||||
RC_INTERACTIVE="yes"
|
||||
|
||||
# RC_VERBOSE will make init scripts more verbose and adds
|
||||
# "Service FOO starting/started/stopping/stopped" messages around each
|
||||
# init script.
|
||||
RC_VERBOSE="no"
|
||||
|
||||
# RC_QUIET on the other hand will make init scripts quiet and produce no
|
||||
# output.
|
||||
RC_QUIET="no"
|
||||
rc_interactive="YES"
|
||||
|
||||
# Do we allow any started service in the runlevel to satisfy the depedency
|
||||
# or do we want all of them regardless of state? For example, if net.eth0
|
||||
# and net.eth1 are in the default runlevel then with RC_DEPEND_STRICT="no"
|
||||
# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
|
||||
# both will be started, but services that depend on 'net' will work if either
|
||||
# one comes up. With RC_DEPEND_STRICT="yes" we would require them both to
|
||||
# one comes up. With rc_depend_strict="YES" we would require them both to
|
||||
# come up.
|
||||
RC_DEPEND_STRICT="yes"
|
||||
rc_depend_strict="YES"
|
||||
|
||||
# Do we allow services to be hotplugged? If not, set to RC_HOTPLUG="no"
|
||||
# Do we allow services to be hotplugged? If not, set to rc_hotplug="NO"
|
||||
# NOTE: This does not affect anything hotplug/udev/devd related, just the
|
||||
# starting/stopping of the init.d service triggered by it.
|
||||
RC_HOTPLUG="yes"
|
||||
rc_hotplug="YES"
|
||||
|
||||
# Dynamic /dev managers can trigger coldplug events which cause services to
|
||||
# start before we are ready for them. If this happens, we can defer these
|
||||
# services to start in the boot runlevel. Set RC_COLDPLUG="no" if you don't
|
||||
# services to start in the boot runlevel. Set rc_coldplug="NO" if you don't
|
||||
# want this.
|
||||
# NOTE: This also affects module coldplugging in udev-096 and higher
|
||||
# If you want module coldplugging but not coldplugging of services then you
|
||||
# can set RC_COLDPLUG="yes" and RC_PLUG_SERVICES="!*"
|
||||
RC_COLDPLUG="yes"
|
||||
# can set rc_coldplug="YES" and rc_plug_services="!*"
|
||||
rc_coldplug="YES"
|
||||
|
||||
# Some people want a finer grain over hotplug/coldplug. RC_PLUG_SERVICES is a
|
||||
# Some people want a finer grain over hotplug/coldplug. rc_plug_services is a
|
||||
# list of services that are matched in order, either allowing or not. By
|
||||
# default we allow services through as RC_COLDPLUG/RC_HOTPLUG has to be yes
|
||||
# default we allow services through as rc_coldplug/rc_hotplug has to be YES
|
||||
# anyway.
|
||||
# Example - RC_PLUG_SERVICES="net.wlan !net.*"
|
||||
# Example - rc_plug_services="net.wlan !net.*"
|
||||
# This allows net.wlan and any service not matching net.* to be plugged.
|
||||
RC_PLUG_SERVICES=""
|
||||
rc_plug_services=""
|
||||
|
||||
# Define network fstypes. Below is the default.
|
||||
#RC_NET_FS_LIST="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
|
||||
net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
|
||||
|
||||
# RC_FORCE_AUTO tries its best to prevent user interaction during the boot and
|
||||
# rc_force_auto tries its best to prevent user interaction during the boot and
|
||||
# shutdown process. For example, fsck will automatically be run or volumes
|
||||
# remounted to create proper directory trees. This feature can be dangerous
|
||||
# and is meant ONLY for headless machines where getting a physical console
|
||||
# hooked up is a huge pita.
|
||||
RC_FORCE_AUTO="no"
|
||||
rc_force_auto="NO"
|
||||
|
||||
# RC_LOGGER launches a logging daemon to log the entire rc process to
|
||||
# rc_logger launches a logging daemon to log the entire rc process to
|
||||
# /var/log/rc.log
|
||||
RC_LOGGER="no"
|
||||
rc_logger="NO"
|
||||
|
||||
##############################################################################
|
||||
# SERVICE CONFIGURATION VARIABLES
|
||||
@ -75,11 +66,11 @@ RC_LOGGER="no"
|
||||
#export SSD_NICELEVEL="-19"
|
||||
|
||||
# Pass ulimit parameters
|
||||
#RC_ULIMIT="-u 30"
|
||||
#rc_ulimit="-u 30"
|
||||
|
||||
# It's possible to define extra dependencies for services like so
|
||||
#RC_CONFIG="/etc/foo"
|
||||
#RC_NEED="openvpn"
|
||||
#RC_USE="net.eth0"
|
||||
#RC_AFTER="clock"
|
||||
#RC_BEFORE="local"
|
||||
#rc_config="/etc/foo"
|
||||
#rc_need="openvpn"
|
||||
#rc_use="net.eth0"
|
||||
#rc_after="clock"
|
||||
#rc_before="local"
|
@ -29,19 +29,24 @@ extra_commands="save"
|
||||
description="Sets the local clock to UTC or Local Time."
|
||||
description_save="Saves the current time in the BIOS."
|
||||
|
||||
clock=${clock:-${CLOCK:-UTC}}
|
||||
if [ "${clock}" = "UTC" ]; then
|
||||
utc="UTC"
|
||||
else
|
||||
utc="Local Time"
|
||||
fi
|
||||
|
||||
depend() {
|
||||
# BSD adjkerntz needs to be able to write to /etc
|
||||
if [ "${CLOCK}" = "UTC" -a -e /etc/wall_cmos_clock ] ||
|
||||
[ "${CLOCK}" != "UTC" -a ! -e /etc/wall_cmos_clock ] ; then
|
||||
if [ "${clock}" = "UTC" -a -e /etc/wall_cmos_clock ] ||
|
||||
[ "${clock}" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
|
||||
need checkroot
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
local TBLURB="Local Time"
|
||||
[ "${CLOCK}" = "UTC" ] && TBLURB="UTC"
|
||||
ebegin "Starting the System Clock Adjuster [${TBLURB}]"
|
||||
if [ "${CLOCK}" != "UTC" ] ; then
|
||||
ebegin "Starting the System Clock Adjuster [${utc}]"
|
||||
if [ "${clock}" != "UTC" ]; then
|
||||
echo >/etc/wall_cmos_clock
|
||||
start-stop-daemon --start --exec /sbin/adjkerntz -- -i
|
||||
else
|
||||
@ -52,16 +57,16 @@ start() {
|
||||
}
|
||||
|
||||
save() {
|
||||
local TBLURB="Local Time"
|
||||
[ "${CLOCK}" = "UTC" ] && TBLURB="UTC"
|
||||
ebegin "Setting hardware clock using the system clock" "[${TBLURB}]"
|
||||
ebegin "Setting hardware clock using the system clock [${utc}]"
|
||||
adjkerntz -a
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
# Don't tweak the hardware clock on LiveCD halt.
|
||||
[ -z "${CDBOOT}" -a "${CLOCK_SYSTOHC}" = "yes" ] && save
|
||||
if yesno "${clock_systohc:-${CLOCK_SYSTOHC}}"; then
|
||||
[ -z "${CDBOOT}" ] && save
|
||||
fi
|
||||
|
||||
ebegin "Stopping the System Clock Adjuster"
|
||||
if start-stop-daemon --test --quiet --stop --exec /sbin/adjkerntz ; then
|
||||
|
47
init.d.BSD/dumpon
Executable file
47
init.d.BSD/dumpon
Executable file
@ -0,0 +1,47 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 1999-2007 Gentoo Foundation
|
||||
# Copyright 2007 Roy Marples
|
||||
# All rights reserved
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
||||
|
||||
description="Configures a specific kernel dump device."
|
||||
|
||||
depend() {
|
||||
need swap
|
||||
before savecore
|
||||
}
|
||||
|
||||
start() {
|
||||
# Setup any user requested dump device
|
||||
if [ -n "${dump_device}" ] ; then
|
||||
ebegin "Activating kernel core dump device (${dump_device})"
|
||||
dumpon ${dump_device}
|
||||
eend $?
|
||||
fi
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Deactiving kernel core dump device"
|
||||
dumpon off
|
||||
eend $?
|
||||
}
|
@ -25,9 +25,9 @@
|
||||
|
||||
# This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD
|
||||
|
||||
IP_IN=${IP_IN-any}
|
||||
PORTS_IN=${PORTS_IN-auth ssh}
|
||||
PORTS_NOLOG=${PORTS_NOLOG-135-139,445 1026,1027 1433,1434}
|
||||
ipfw_ip_in=${ipfw_ip_in-any}
|
||||
ipfw_ports_in=${ipfw_ports_in-auth ssh}
|
||||
ipfw_ports_nolog=${ipfw_ports_nolog-135-139,445 1026,1027 1433,1434}
|
||||
|
||||
opts="panic showstatus"
|
||||
|
||||
@ -105,8 +105,8 @@ start() {
|
||||
|
||||
# Add permits for this workstations published services below
|
||||
# Only IPs and nets in firewall_allowservices is allowed in.
|
||||
for i in ${IP_IN}; do
|
||||
for p in ${PORTS_IN}; do
|
||||
for i in ${ipfw_ip_in}; do
|
||||
for p in ${ipfw_ports_in}; do
|
||||
ipfw add pass tcp from ${i} to me ${p}
|
||||
done
|
||||
done
|
||||
@ -114,14 +114,14 @@ start() {
|
||||
# Allow all connections from trusted IPs.
|
||||
# Playing with the content of firewall_trusted could seriously
|
||||
# degrade the level of protection provided by the firewall.
|
||||
for i in ${IP_TRUST}; do
|
||||
for i in ${ipfw_ip_trust}; do
|
||||
ipfw add pass ip from ${i} to me
|
||||
done
|
||||
|
||||
ipfw add 65000 count ip from any to any
|
||||
|
||||
# Drop packets to ports where we don't want logging
|
||||
for p in ${PORTS_NOLOG}; do
|
||||
for p in ${ipfw_ports_nolog}; do
|
||||
ipfw add deny { tcp or udp } from any to any ${p} in
|
||||
done
|
||||
|
||||
@ -138,7 +138,7 @@ start() {
|
||||
ipfw add deny tcp from any 80,443 to any 1024-65535 in
|
||||
|
||||
# Deny and (if wanted) log the rest unconditionally.
|
||||
if [ "${LOG_DENY}" = "yes" ]; then
|
||||
if yesno ${ipfw_log_deny:-no}; then
|
||||
log="log"
|
||||
sysctl net.inet.ip.fw.verbose=1 >/dev/null
|
||||
fi
|
||||
|
@ -23,14 +23,15 @@
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
name=${SVCNAME##*.}
|
||||
if [ -n "${name}" -a "${name}" != "moused" ] ; then
|
||||
device=/dev/"${name}"
|
||||
pidfile=/var/run/moused-"${name}".pid
|
||||
mouse=${SVCNAME##*.}
|
||||
if [ -n "${name}" -a "${mouse}" != "moused" ] ; then
|
||||
moused_device=/dev/"${mouse}"
|
||||
pidfile=/var/run/moused-"${mouse}".pid
|
||||
else
|
||||
name=
|
||||
pidfile=/var/run/moused.pid
|
||||
fi
|
||||
name="Console Mouse Daemon"
|
||||
[ -n "${moused_device}" ] && name="${name} (${moused_device})"
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
@ -38,45 +39,38 @@ depend() {
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting the Console Mouse Daemon" "${name}"
|
||||
ebegin "Starting ${name}"
|
||||
|
||||
if [ -z "${device}" ] ; then
|
||||
if [ -z "${moused_device}" ] ; then
|
||||
local dev=
|
||||
for dev in /dev/psm[0-9]* /dev/ums[0-9]* ; do
|
||||
[ -e "${dev}" ] || continue
|
||||
[ -e /var/run/moused-$(basename "${dev}").pid ] && continue
|
||||
device=${dev}
|
||||
moused_device=${dev}
|
||||
eindent
|
||||
einfo "Using mouse on ${device}"
|
||||
einfo "Using mouse on ${moused_device}"
|
||||
eoutdent
|
||||
break
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -z "${device}" ] ; then
|
||||
if [ -z "${moused_device}" ] ; then
|
||||
eend 1 "No mouse device found"
|
||||
return 1
|
||||
fi
|
||||
|
||||
start-stop-daemon --start --exec /usr/sbin/moused \
|
||||
--pidfile "${pidfile}" \
|
||||
-- ${MOUSED_ARGS} -p "${device}" -I "${pidfile}"
|
||||
-- ${moused_args} -p "${moused_device}" -I "${pidfile}"
|
||||
local retval=$?
|
||||
|
||||
[ -n "${MOUSE_CHAR_START}" ] && MOUSE_CHAR_START="-M ${MOUSE_CHAR_START}"
|
||||
local ttyv=
|
||||
for ttyv in /dev/ttyv*; do
|
||||
vidcontrol < "${ttyv}" ${MOUSE_CHAR_START} -m on
|
||||
vidcontrol < "${ttyv}" -m on
|
||||
: $((retval+= $?))
|
||||
done
|
||||
|
||||
eend ${retval} "Failed to start moused"
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping the Console Mouse Daemon ${name}"
|
||||
start-stop-daemon --quiet --stop --pidfile "${pidfile}"
|
||||
eend $? "Failed to stop moused"
|
||||
}
|
||||
|
||||
# vim: set ts=4 :
|
||||
|
@ -25,7 +25,7 @@
|
||||
# SUCH DAMAGE.
|
||||
|
||||
command=/usr/sbin/powerd
|
||||
command_args=${POWERD_ARGS}
|
||||
command_args=${powerd_args}
|
||||
pidfile=/var/run/powerd.pid
|
||||
name="Power Control Daemon"
|
||||
|
||||
@ -36,10 +36,19 @@ depend() {
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
if [ -n "${BATTERY_MODE}" ]; then
|
||||
command_args="${command_args} -b ${BATTERY_MODE}"
|
||||
if [ -n "${powerd_battery_mode}" ]; then
|
||||
command_args="${command_args} -b ${powerd_battery_mode}"
|
||||
fi
|
||||
if [ -n "${AC_MODE}" ]; then
|
||||
command_args="${command_args} -a ${AC_MODE}"
|
||||
if [ -n "${powerd_ac_mode}" ]; then
|
||||
command_args="${command_args} -a ${powerd_ac_mode}"
|
||||
fi
|
||||
}
|
||||
|
||||
stop_post()
|
||||
{
|
||||
local level=$(sysctl -n dev.cpu.0.freq_levels |
|
||||
sed -e 's:/.*::')
|
||||
if [ -n "${level}" ]; then
|
||||
sysctl dev.cpu.0.freq="${level}" >/dev/null
|
||||
fi
|
||||
}
|
||||
|
@ -25,14 +25,15 @@
|
||||
# SUCH DAMAGE.
|
||||
|
||||
command=/usr/sbin/rarpd
|
||||
command_args="-f ${RARPD_ARGS}"
|
||||
command_args="-f ${rarpd_args}"
|
||||
pidfile=/var/run/rarpd.pid
|
||||
name="Reverse ARP Daemon"
|
||||
required_files="/etc/ethers"
|
||||
|
||||
if [ -z "${RARPD_INTERFACE}" ]; then
|
||||
if [ -z "${rarpd_interface}" ]; then
|
||||
command_args="${command_args} -a"
|
||||
else
|
||||
command_args="${command_args} ${RARPD_INTERFACE}"
|
||||
command_args="${command_args} ${rarpd_interface}"
|
||||
fi
|
||||
command_background="YES"
|
||||
|
||||
@ -40,9 +41,9 @@ depend() {
|
||||
need localmount
|
||||
after bootmisc
|
||||
|
||||
if [ -z "${RARPD_INTERFACE}" ]; then
|
||||
if [ -z "${rarpd_interface}" ]; then
|
||||
need net
|
||||
else
|
||||
net net."${RARPD_INTERFACE}"
|
||||
net net."${rarpd_interface}"
|
||||
fi
|
||||
}
|
||||
|
@ -25,7 +25,8 @@
|
||||
|
||||
depend() {
|
||||
need localmount net
|
||||
after $(ls -1 | grep -v local | xargs)
|
||||
after *
|
||||
before local
|
||||
}
|
||||
|
||||
start() {
|
||||
|
@ -25,7 +25,7 @@
|
||||
# SUCH DAMAGE.
|
||||
|
||||
command=/usr/sbin/rpcbind
|
||||
command_args=${RPCBIND_ARGS}
|
||||
command_args=${rpcbind_args}
|
||||
name="RPC program number mapper"
|
||||
|
||||
depend() {
|
||||
|
56
init.d.BSD/savecore
Executable file
56
init.d.BSD/savecore
Executable file
@ -0,0 +1,56 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 1999-2007 Gentoo Foundation
|
||||
# Copyright 2007 Roy Marples
|
||||
# All rights reserved
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
||||
|
||||
description="Saves a kernel dump."
|
||||
|
||||
depend() {
|
||||
need checkfs
|
||||
before swap
|
||||
}
|
||||
|
||||
start() {
|
||||
local dump_dir=${dump_dir:-/var/crash}
|
||||
if ! [ -d "${dump_dir}" ]; then
|
||||
mkdir -p "${dump_dir}"
|
||||
chmod 700 "${dump_dir}"
|
||||
fi
|
||||
|
||||
if [ "${RC_UNAME}" = "FreeBSD" ] ; then
|
||||
# Don't quote ${dump_device}, so that if it's unset,
|
||||
# savecore will check on the partitions listed in fstab
|
||||
# without errors in the output
|
||||
savecore -C "${dump_dir}" ${dump_device} >/dev/null
|
||||
else
|
||||
ls "${dump_dir}"/bsd* > /dev/null 2>&1
|
||||
fi
|
||||
[ $? = 0 ] || return 0
|
||||
|
||||
local sopts="${dump_dir} ${dump_device}"
|
||||
yesno ${dump_compress} && sopts="-z ${sopts}"
|
||||
ebegin "Saving kernel core dump in ${dump_dir}"
|
||||
savecore ${sopts} >/dev/null
|
||||
eend $?
|
||||
}
|
@ -28,30 +28,29 @@ depend() {
|
||||
}
|
||||
|
||||
start() {
|
||||
if [ -n "${MODE}" ]; then
|
||||
ebegin "Setting mode to ${MODE} for all screens"
|
||||
if [ -n "${allscreen_flags}" ]; then
|
||||
ebegin "Setting mode to ${allscreen_flags} for all screens"
|
||||
for v in /dev/ttyv*; do
|
||||
[ -c "${v}" ] || continue
|
||||
vidcontrol "${MODE}" <"${v}"
|
||||
vidcontrol ${allscreen_flags} <"${v}"
|
||||
done
|
||||
eend $?
|
||||
fi
|
||||
|
||||
if [ -n "${KEYMAP}" ]; then
|
||||
ebegin "Setting keymap to ${KEYMAP}"
|
||||
kbdcontrol -l ${KEYMAP} </dev/console
|
||||
if [ -n "${keymap}" ]; then
|
||||
ebegin "Setting keymap to ${keymap}"
|
||||
kbdcontrol -l ${keymap} </dev/console
|
||||
eend $?
|
||||
fi
|
||||
|
||||
if [ -n "${KEYRATE}" ]; then
|
||||
ebegin "Setting keyrate to ${KEYRATE}"
|
||||
kbdcontrol -r ${KEYRATE} </dev/console
|
||||
if [ -n "${keyrate}" ]; then
|
||||
ebegin "Setting keyrate to ${keyrate}"
|
||||
kbdcontrol -r ${keyrate} </dev/console
|
||||
eend $?
|
||||
fi
|
||||
|
||||
if [ -n "${KEYCHANGE}" ]; then
|
||||
if [ -n "${keychange}" ]; then
|
||||
ebegin "Changing function keys"
|
||||
eval set -- "${KEYCHANGE}"
|
||||
eval set -- "${keychange}"
|
||||
eindent
|
||||
while [ $# -gt 0 ] ; do
|
||||
veinfo "F$1 -> \`$2'"
|
||||
@ -62,14 +61,14 @@ start() {
|
||||
eoutdent
|
||||
fi
|
||||
|
||||
if [ -n "${CURSOR}" ]; then
|
||||
if [ -n "${cursor}" ]; then
|
||||
ebegin "Setting cursor"
|
||||
vidcontrol -c ${CURSOR}
|
||||
vidcontrol -c ${cursor}
|
||||
eend $?
|
||||
fi
|
||||
|
||||
local v= f=
|
||||
for v in FONT8x16 FONT8x14 FONT8x8; do
|
||||
for v in font8x16 font8x14 font8x8; do
|
||||
f=$(eval \$"${v}")
|
||||
if [ -n "${f}" ]; then
|
||||
ebegin "Setting font ${f}"
|
||||
@ -78,25 +77,24 @@ start() {
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "${BLANKTIME}" ]; then
|
||||
if [ -n "${blanktime}" ]; then
|
||||
ebegin "Setting blanktime"
|
||||
vidcontrol -t ${BLANKTIME}
|
||||
vidcontrol -t ${blanktime}
|
||||
eend $?
|
||||
fi
|
||||
|
||||
if [ -n "${SAVER}" ]; then
|
||||
if [ -n "${saver}" ]; then
|
||||
local i=
|
||||
for i in $(kldstat | sed -n -e 's/.* \(splash_.*\)/\1/p'); do
|
||||
kldunload "${i}"
|
||||
done
|
||||
kldstat -v | grep -q _saver || kldload ${SAVER}_saver
|
||||
kldstat -v | grep -q _saver || kldload ${saver}_saver
|
||||
fi
|
||||
|
||||
if [ -n "${KBDFLAGS}" ]; then
|
||||
if [ -n "${kbdflags}" ]; then
|
||||
ebegin "Setting keyboard flags for all screens"
|
||||
for v in /dev/ttyv*; do
|
||||
[ -c "${v}" ] || continue
|
||||
kbdcontrol ${KBDFLAGS} <"${v}"
|
||||
kbdcontrol ${kbdflags} <${v}
|
||||
done
|
||||
eend $?
|
||||
fi
|
||||
|
@ -25,7 +25,7 @@
|
||||
# SUCH DAMAGE.
|
||||
|
||||
command=/usr/sbin/syslogd
|
||||
command_args=${SYSLOGD_ARGS}
|
||||
command_args=${syslogd_args}
|
||||
pidfile=/var/run/syslog.pid
|
||||
name="System Logger Daemon"
|
||||
|
||||
|
108
init.d.Linux/procfs
Normal file
108
init.d.Linux/procfs
Normal file
@ -0,0 +1,108 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 1999-2007 Gentoo Foundation
|
||||
# Copyright 2007 Roy Marples
|
||||
# All rights reserved
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
||||
|
||||
description="Mounts misc filesystems in /proc."
|
||||
|
||||
depend() {
|
||||
need checkfs
|
||||
}
|
||||
|
||||
start() {
|
||||
# Make sure we insert usbcore if its a module
|
||||
if [ -f /proc/modules -a ! -d /proc/bus/usb ]; then
|
||||
modprobe -q usbcore
|
||||
fi
|
||||
|
||||
[ -e /proc/filesystems ] || return 0
|
||||
|
||||
# Check what USB fs the kernel support. Currently
|
||||
# 2.5+ kernels, and later 2.4 kernels have 'usbfs',
|
||||
# while older kernels have 'usbdevfs'.
|
||||
if [ -d /proc/bus/usb -a ! -e /proc/bus/usb/devices ]; then
|
||||
local usbfs=$(grep -Fow usbfs /proc/filesystems ||
|
||||
grep -Fow usbdevfs /proc/filesystems)
|
||||
if [ -n "${usbfs}" ] ; then
|
||||
ebegin "Mounting USB device filesystem (${usbfs})"
|
||||
local usbgid="$(getent group usb | \
|
||||
sed -e 's/.*:.*:\(.*\):.*/\1/')"
|
||||
mount -t ${usbfs} \
|
||||
-o ${usbgid:+devmode=0664,devgid=${usbgid},}noexec,nosuid \
|
||||
usbfs /proc/bus/usb
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for the NFS daemon status
|
||||
if [ -d /proc/fs/nfsd ] && ! mountinfo -q /proc/fs/nfsd ; then
|
||||
if grep -qs nfsd /proc/filesystems ; then
|
||||
ebegin "Mounting nfsd filesystem"
|
||||
mount -t nfsd -o nodev,noexec,nosuid \
|
||||
nfsd /proc/fs/nfsd
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for miscellaneous Binary Formats
|
||||
if [ -d /proc/sys/fs/binfmt_misc ] && ! mountinfo -q /proc/sys/fs/binfmt_misc ; then
|
||||
if grep -qs binfmt_misc /proc/filesystems ; then
|
||||
ebegin "Mounting misc binary format filesystem"
|
||||
mount -t binfmt_misc -o nodev,noexec,nosuid \
|
||||
binfmt_misc /proc/sys/fs/binfmt_misc
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for securityfs
|
||||
if [ -d /sys/kernel/security ] && ! mountinfo -q /sys/kernel/security ; then
|
||||
if grep -qs securityfs /proc/filesystems ; then
|
||||
ebegin "Mounting security filesystem"
|
||||
mount -t securityfs securityfs /sys/kernel/security \
|
||||
-o nodev,noexec,nosuid
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for debugfs
|
||||
if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug ; then
|
||||
if grep -qs debugfs /proc/filesystems ; then
|
||||
ebegin "Mounting debug filesystem"
|
||||
mount -t debugfs debugfs /sys/kernel/debug \
|
||||
-o nodev,noexec,nosuid
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for SELinux
|
||||
if [ -d /selinux ] && ! mountinfo -q /selinux ; then
|
||||
if grep -qs selinuxfs /proc/filesystems ; then
|
||||
ebegin "Mounting SELinux filesystem"
|
||||
mount -t selinuxfs selinuxfs /selinux
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
5
init.d.misc/Makefile
Normal file
5
init.d.misc/Makefile
Normal file
@ -0,0 +1,5 @@
|
||||
DIR = /etc/init.d
|
||||
BIN = $(CONTENTS)
|
||||
|
||||
TOPDIR = ..
|
||||
include $(TOPDIR)/default.mk
|
116
init.d.misc/named
Normal file
116
init.d.misc/named
Normal file
@ -0,0 +1,116 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 2007 Roy Marples
|
||||
# All rights reserved
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
||||
|
||||
command=/usr/sbin/named
|
||||
command_args=${named_args}
|
||||
pidfile=/var/run/named/pid
|
||||
name="Domain Name server"
|
||||
extra_commands="reload"
|
||||
|
||||
namedb=/etc/namedb
|
||||
named_uid=${named_uid:-bind}
|
||||
|
||||
depend() {
|
||||
provide dns
|
||||
need localmount
|
||||
after bootmisc
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
if [ -n "${named_chroot}" ]; then
|
||||
# Create (or update) the chroot directory structure
|
||||
if [ -r /etc/mtree/BIND.chroot.dist ]; then
|
||||
mtree -deU -f /etc/mtree/BIND.chroot.dist -p "${named_chroot}"
|
||||
else
|
||||
ewarn "/etc/mtree/BIND.chroot.dist missing,"
|
||||
ewarn "chroot directory structure not updated"
|
||||
fi
|
||||
|
||||
if [ ! -d "${named_chroot}"/. ]; then
|
||||
eerror "chroot directory ${named_chroot} missing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create /etc/namedb symlink
|
||||
if [ ! -L "${namedb}" ]; then
|
||||
if [ -d "${namedb}" ]; then
|
||||
ewarn "named chroot: ${namedb} is a directory!"
|
||||
elif [ -e "${namedb}" ]; then
|
||||
ewarn "named chroot: ${namedb} exists!"
|
||||
else
|
||||
ln -s "${named_chroot}${namedb}" "${namedb}"
|
||||
fi
|
||||
else
|
||||
# Make sure it points to the right place.
|
||||
ln -shf "${named_chroot}${namedb}" "${namedb}"
|
||||
fi
|
||||
|
||||
case "${RC_UNAME}" in
|
||||
*BSD|DragonFly)
|
||||
# Mount a devfs in the chroot directory if needed
|
||||
umount "${named_chroot}"/dev 2>/dev/null
|
||||
mount -t devfs dev "${named_chroot}"/dev
|
||||
devfs -m "${named_chroot}"/dev ruleset devfsrules_hide_all
|
||||
devfs -m "${named_chroot}"/dev rule apply path null unhide
|
||||
devfs -m "${named_chroot}"/dev rule apply path random unhide
|
||||
;;
|
||||
esac
|
||||
|
||||
# Copy local timezone information if it is not up to date.
|
||||
if [ -r /etc/localtime ]; then
|
||||
cmp -s /etc/localtime "${named_chroot}/etc/localtime" ||
|
||||
cp -p /etc/localtime "${named_chroot}/etc/localtime"
|
||||
fi
|
||||
|
||||
command_args="${command_args} -t ${named_chroot}"
|
||||
|
||||
ln -fs "${named_chroot}${pidfile}" "${pidfile}"
|
||||
fi
|
||||
|
||||
if [ ! -s "${named_chroot}${namedb}/rndc.conf" ]; then
|
||||
local confgen="${command%/named}/rndc-confgen -a -b256 -u ${named_uid} \
|
||||
-c ${named_chrootdir}/etc/namedb/rndc.key"
|
||||
if [ -s "${named_chroot}${namedb}/rndc.key" ]; then
|
||||
local getuser="stat -f%Su"
|
||||
[ "${RC_UNAME}" = "Linux" ] && getuser="stat -c%U"
|
||||
case $(${getuser} "${named_chroot}${namedb}"/rndc.key) in
|
||||
root|"${named_uid}") ;;
|
||||
*) ${confgen} ;;
|
||||
esac
|
||||
else
|
||||
${confgen}
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
reload() {
|
||||
rndc reload
|
||||
}
|
||||
|
||||
stop_post() {
|
||||
if [ -n "${named_chroot}" -a -c "${named_chroot}"/dev/null ]; then
|
||||
umount "${named_chroot}"/dev 2>/dev/null || true
|
||||
fi
|
||||
}
|
59
init.d.misc/ntpd
Normal file
59
init.d.misc/ntpd
Normal file
@ -0,0 +1,59 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 2007 Roy Marples
|
||||
# All rights reserved
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
||||
|
||||
ntpd_config=${ntpd_config:-/etc/ntp.conf}
|
||||
ntpd_drift=${ntpd_drift:-/var/db/ntpd.drift}
|
||||
|
||||
command=/usr/sbin/ntpd
|
||||
pidfile=/var/run/ntpd.pid
|
||||
command_args="${ntpd_args} -c ${ntpd_config} -f ${ntpd_drift} -p ${pidfile}"
|
||||
name="Network Time Protocol Daemon"
|
||||
|
||||
depend() {
|
||||
use dns
|
||||
need localmount
|
||||
after bootmisc ntp-client
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
if [ ! -r "${ntpd_config}" ]; then
|
||||
eerror "${ntpd_config} is not readable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "${ntpd_chroot}" ]; then
|
||||
case "${RC_UNAME}" in
|
||||
*BSD|DragonFly)
|
||||
if [ ! -c "${ntpd_chroot}/dev/clockctl" ]; then
|
||||
rm -f "${ntpd_chroot}/dev/clockctl"
|
||||
(cd /dev; /bin/pax -rw -pe clockctl "${ntpd_chroot}/dev")
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
ln -fs "${ntpd_chroot}${ntpd_drift}" "${ntpd_drift}"
|
||||
|
||||
command_args="${command_args} -u ntpd:ntpd -i ${ntpd_chroot}"
|
||||
fi
|
||||
}
|
@ -36,7 +36,7 @@ cleanup_tmp_dir() {
|
||||
|
||||
mkdir -p "${dir}"
|
||||
cd "${dir}"
|
||||
if [ "${WIPE_TMP}" = "yes" ]; then
|
||||
if [ "${wipe_tmp}" = "yes" ]; then
|
||||
ebegin "Wiping ${dir} directory"
|
||||
local startopts="-x . -depth"
|
||||
[ "${RC_UNAME}" = "Linux" ] && startopts=". -xdev -depth"
|
||||
@ -116,7 +116,7 @@ start() {
|
||||
|
||||
# Clean up /tmp directories
|
||||
local tmp=
|
||||
for tmp in ${WIPE_TMP_DIRS-/tmp}; do
|
||||
for tmp in ${wipe_tmp_dirs-/tmp}; do
|
||||
cleanup_tmp_dir "${tmp}"
|
||||
done
|
||||
chmod +t /tmp /var/tmp
|
||||
|
@ -63,7 +63,7 @@ do_checkfs() {
|
||||
ewend 1 "Operational error, continuing"
|
||||
retval=0
|
||||
else
|
||||
if [ "${RC_FORCE_AUTO}" = "yes" ] ; then
|
||||
if yesno ${rc_force_auto:-${RC_FORCE_AUTO}}; then
|
||||
eend 2 "Fsck could not correct all errors, rerunning"
|
||||
fsck ${opts} -y ${parts}
|
||||
retval=$?
|
||||
@ -87,7 +87,9 @@ start() {
|
||||
|
||||
stop() {
|
||||
# fsck on shutdown if we need to
|
||||
[ "${FSCK_SHUTDOWN}" = "yes" -a ! -f /forcefsck ] && do_checkfs
|
||||
if yesno "${fsck_shutdown:-${FSCK_SHUTDOWN}}"; then
|
||||
[ ! -f /forcefsck ] && do_checkfs
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -100,7 +100,7 @@ do_fsck() {
|
||||
retval=0
|
||||
elif [ ${retval} -eq 2 -o ${retval} -eq 3 ] ; then
|
||||
ewend 1 "Filesystem repaired, but reboot needed!"
|
||||
if [ "${RC_FORCE_AUTO}" != "yes" ] ; then
|
||||
if ! yesno ${rc_force_auto:-${RC_FORCE_AUTO}}; then
|
||||
printf "\a"; sleep 1; printf "\a"; sleep 1
|
||||
printf "\a"; sleep 1; printf "\a"; sleep 1
|
||||
ewarn "Rebooting in 10 seconds ..."
|
||||
@ -109,7 +109,7 @@ do_fsck() {
|
||||
einfo "Rebooting"
|
||||
reboot -f
|
||||
else
|
||||
if [ "${RC_FORCE_AUTO}" = "yes" ] ; then
|
||||
if yesno ${rc_force_auto:-${RC_FORCE_AUTO}}; then
|
||||
eend 2 "Rerunning fsck in force mode"
|
||||
fsck ${opts} -y "${root}"
|
||||
retval=$?
|
||||
@ -128,7 +128,6 @@ do_fsck() {
|
||||
reboot -f
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
start() {
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
. /etc/init.d/functions.sh
|
||||
. "${RC_LIBDIR}"/sh/rc-functions.sh
|
||||
[ -r /etc/rc.conf ] && . /etc/rc.conf
|
||||
|
||||
# Support LiveCD foo
|
||||
if [ -r /sbin/livecd-functions.sh ] ; then
|
||||
@ -93,7 +94,7 @@ if [ "${RC_UNAME}" = "Linux" ] ; then
|
||||
. "${RC_LIBDIR}"/sh/rc-mount.sh
|
||||
eindent
|
||||
fs=
|
||||
for x in ${RC_NET_FS_LIST} ; do
|
||||
for x in ${net_fs_list} ; do
|
||||
fs="${fs}${fs:+|}${x}"
|
||||
done
|
||||
[ -n "${fs}" ] && fs="^(${fs})$"
|
||||
|
@ -31,13 +31,9 @@ depend() {
|
||||
}
|
||||
|
||||
start() {
|
||||
if [ -f /etc/hostname ] ; then
|
||||
ewarn "You should stop using /etc/hostname and use /etc/conf.d/hostname"
|
||||
HOSTNAME=$(cat /etc/hostname)
|
||||
fi
|
||||
|
||||
ebegin "Setting hostname to ${HOSTNAME}"
|
||||
hostname "${HOSTNAME}"
|
||||
hostname=${hostname-${HOSTNAME-localhost}}
|
||||
ebegin "Setting hostname to ${hostname}"
|
||||
hostname "${hostname}"
|
||||
eend $? "Failed to set the hostname"
|
||||
}
|
||||
|
||||
|
@ -25,8 +25,6 @@
|
||||
# SUCH DAMAGE.
|
||||
|
||||
description="Mounts disks and swap according to /etc/fstab."
|
||||
[ -e /proc/filessystems ] && description="${description} Also mounts various filesystems in /proc."
|
||||
[ -x /sbin/dumpon ] && description="${description} Also configures saving kernel dumps to swap."
|
||||
|
||||
depend() {
|
||||
need checkfs
|
||||
@ -35,7 +33,7 @@ depend() {
|
||||
start() {
|
||||
# Mount local filesystems in /etc/fstab.
|
||||
local types="noproc" x=
|
||||
for x in ${RC_NET_FS_LIST} ; do
|
||||
for x in ${net_fs_list}; do
|
||||
types="${types},${x}"
|
||||
done
|
||||
|
||||
@ -43,122 +41,6 @@ start() {
|
||||
mount -at "${types}"
|
||||
eend $? "Some local filesystem failed to mount"
|
||||
|
||||
if [ -x /sbin/savecore ] ; then
|
||||
local dumpdir=${KERNEL_DUMP_DIR:-/var/crash}
|
||||
if ! [ -d "${dumpdir}" ]; then
|
||||
mkdir -p "${dumpdir}"
|
||||
chmod 700 "${dumpdir}"
|
||||
fi
|
||||
|
||||
if [ "${RC_UNAME}" = "FreeBSD" ] ; then
|
||||
# Don't quote ${KERNEL_DUMP_DEVICE}, so that if it's unset,
|
||||
# savecore will check on the partitions listed in fstab
|
||||
# without errors in the output
|
||||
savecore -C "${dumpdir}" ${KERNEL_DUMP_DEVICE} >/dev/null
|
||||
else
|
||||
ls "${dumpdir}"/bsd* > /dev/null 2>&1
|
||||
fi
|
||||
if [ $? = 0 ] ; then
|
||||
local sopts="${dumpdir} ${KERNEL_DUMP_DEVICE}"
|
||||
[ "${KERNEL_DUMP_COMPRESS}" = "yes" ] && sopts="-z ${sopts}"
|
||||
ebegin "Saving kernel core dump in" "${dumpdir}"
|
||||
savecore ${savecoreopts} >/dev/null
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Sync bootlog now as /var should be mounted
|
||||
if type bootlog >/dev/null 2>/dev/null ; then
|
||||
bootlog sync 2>/dev/null
|
||||
fi
|
||||
|
||||
# Make sure we insert usbcore if its a module
|
||||
if [ -f /proc/modules -a ! -d /proc/bus/usb ] ; then
|
||||
modprobe -q usbcore
|
||||
fi
|
||||
|
||||
if [ -e /proc/filesystems ] ; then
|
||||
# Check what USB fs the kernel support. Currently
|
||||
# 2.5+ kernels, and later 2.4 kernels have 'usbfs',
|
||||
# while older kernels have 'usbdevfs'.
|
||||
if [ -d /proc/bus/usb -a ! -e /proc/bus/usb/devices ] ; then
|
||||
local usbfs=$(grep -Fow usbfs /proc/filesystems ||
|
||||
grep -Fow usbdevfs /proc/filesystems)
|
||||
|
||||
if [ -n "${usbfs}" ] ; then
|
||||
ebegin "Mounting USB device filesystem (${usbfs})"
|
||||
local usbgid="$(getent group usb | \
|
||||
sed -e 's/.*:.*:\(.*\):.*/\1/')"
|
||||
mount -t ${usbfs} \
|
||||
-o ${usbgid:+devmode=0664,devgid=${usbgid},}noexec,nosuid \
|
||||
usbfs /proc/bus/usb
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for the NFS daemon status
|
||||
if [ -d /proc/fs/nfsd ] && ! mountinfo -q /proc/fs/nfsd ; then
|
||||
if grep -qs nfsd /proc/filesystems ; then
|
||||
ebegin "Mounting nfsd filesystem"
|
||||
mount -t nfsd -o nodev,noexec,nosuid \
|
||||
nfsd /proc/fs/nfsd
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for miscellaneous Binary Formats
|
||||
if [ -d /proc/sys/fs/binfmt_misc ] && ! mountinfo -q /proc/sys/fs/binfmt_misc ; then
|
||||
if grep -qs binfmt_misc /proc/filesystems ; then
|
||||
ebegin "Mounting misc binary format filesystem"
|
||||
mount -t binfmt_misc -o nodev,noexec,nosuid \
|
||||
binfmt_misc /proc/sys/fs/binfmt_misc
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for securityfs
|
||||
if [ -d /sys/kernel/security ] && ! mountinfo -q /sys/kernel/security ; then
|
||||
if grep -qs securityfs /proc/filesystems ; then
|
||||
ebegin "Mounting security filesystem"
|
||||
mount -t securityfs securityfs /sys/kernel/security \
|
||||
-o nodev,noexec,nosuid
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for debugfs
|
||||
if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug ; then
|
||||
if grep -qs debugfs /proc/filesystems ; then
|
||||
ebegin "Mounting debug filesystem"
|
||||
mount -t debugfs debugfs /sys/kernel/debug \
|
||||
-o nodev,noexec,nosuid
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup Kernel Support for SELinux
|
||||
if [ -d /selinux ] && ! mountinfo -q /selinux ; then
|
||||
if grep -qs selinuxfs /proc/filesystems ; then
|
||||
ebegin "Mounting SELinux filesystem"
|
||||
mount -t selinuxfs selinuxfs /selinux
|
||||
eend $?
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# We do our swapping here instead of rc so we can get urandom started
|
||||
# before us for people that like an encrypted swap.
|
||||
ebegin "Activating (possible) swap"
|
||||
swapon -a >/dev/null
|
||||
eend 0 # If swapon has nothing todo it errors, so always return 0
|
||||
|
||||
# Setup any user requested dump device
|
||||
if [ -x /sbin/dumpon -a -n "${KERNEL_DUMP_DEVICE}" ] ; then
|
||||
ebegin "Activating kernel core dump device" "(${KERNEL_DUMP_DEVICE})"
|
||||
dumpon "${KERNEL_DUMP_DEVICE}"
|
||||
eend $?
|
||||
fi
|
||||
|
||||
# Always return 0 - some local mounts may not be critical for boot
|
||||
return 0
|
||||
}
|
||||
@ -170,12 +52,10 @@ stop() {
|
||||
# We never unmount / or /dev or $RC_SVCDIR
|
||||
local x= no_umounts="/|/dev|/dev/.*|${RC_SVCDIR}"
|
||||
|
||||
# NO_UMOUNTS is taken from /etc/conf.d/localmount
|
||||
# RC_NO_UMOUNTS is taken from /etc/conf.d/rc and can also be
|
||||
# set by plugins
|
||||
# RC_NO_UMOUNTS is an env var that can be set by plugins
|
||||
OIFS=${IFS} SIFS=${IFS-y}
|
||||
IFS=$IFS:
|
||||
for x in ${NO_UMOUNTS} ${RC_NO_UMOUNTS} ; do
|
||||
for x in ${no_umounts} ${RC_NO_UMOUNTS}; do
|
||||
no_umounts="${no_umounts}|${x}"
|
||||
done
|
||||
if [ "${SIFS}" = "y" ] ; then
|
||||
@ -198,22 +78,6 @@ stop() {
|
||||
cd "${RC_SVCDIR}"
|
||||
umount -a -t tmpfs 2>/dev/null
|
||||
|
||||
# As we're turning off swap below, we need to disable kernel dumps
|
||||
[ -x /sbin/dumpon ] && dumpon off
|
||||
|
||||
local swap_list=
|
||||
# Turn off swap
|
||||
if [ -r /proc/swaps ] ;then
|
||||
swap_list=$(sed -e '1d' /proc/swaps)
|
||||
else
|
||||
swap_list=$(swapctl -l 2>/dev/null | sed -e '1d')
|
||||
fi
|
||||
if [ -n "${swap_list}" ] ; then
|
||||
ebegin "Deactivating swap"
|
||||
swapoff -a >/dev/null
|
||||
eend $?
|
||||
fi
|
||||
|
||||
. "${RC_LIBDIR}"/sh/rc-mount.sh
|
||||
|
||||
# Umount loopback devices
|
||||
@ -228,7 +92,7 @@ stop() {
|
||||
einfo "Unmounting filesystems"
|
||||
eindent
|
||||
local fs=
|
||||
for x in ${RC_NET_FS_LIST} ; do
|
||||
for x in ${net_fs_list}; do
|
||||
fs="${fs}${fs:+|}${x}"
|
||||
done
|
||||
[ -n "${fs}" ] && fs="^(${fs})$"
|
||||
|
@ -59,7 +59,7 @@ start() {
|
||||
[ -x /etc/init.d/rpcbind ] && pmap="rpcbind"
|
||||
|
||||
local x= fs=
|
||||
for x in ${RC_NET_FS_LIST}; do
|
||||
for x in ${net_fs_list}; do
|
||||
case "${x}" in
|
||||
nfs|nfs4)
|
||||
# If the nfsmount script took care of the nfs filesystems,
|
||||
@ -89,7 +89,7 @@ stop() {
|
||||
ebegin "Unmounting network filesystems"
|
||||
. "${RC_LIBDIR}/sh/rc-mount.sh"
|
||||
|
||||
for x in ${RC_NET_FS_LIST} ; do
|
||||
for x in ${net_fs_list} ; do
|
||||
fs="${fs}${fs:+,}${x}"
|
||||
done
|
||||
if [ -n "${fs}" ]; then
|
||||
@ -98,7 +98,7 @@ stop() {
|
||||
|
||||
eindent
|
||||
fs=
|
||||
for x in ${RC_NET_FS_LIST}; do
|
||||
for x in ${net_fs_list}; do
|
||||
fs="${fs}${fs:+|}${x}"
|
||||
done
|
||||
[ -n "${fs}" ] && fs="^(${fs})$"
|
||||
|
40
init.d/swap
Normal file
40
init.d/swap
Normal file
@ -0,0 +1,40 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 2007 Roy Marples
|
||||
# All rights reserved
|
||||
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Activating swap"
|
||||
swapon -a >/dev/null
|
||||
eend 0 # If swapon has nothing todo it errors, so always return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Deactivating swap"
|
||||
swapoff -a >/dev/null
|
||||
eend 0
|
||||
}
|
@ -24,7 +24,7 @@
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
URANDOM_SEED=${URANDOM_SEED:-/var/run/random-seed}
|
||||
urandom_seed=${urandom_seed:-${URANDOM_SEED:-/var/run/random-seed}}
|
||||
|
||||
description="Initializes the random number generator."
|
||||
|
||||
@ -41,22 +41,19 @@ save_seed() {
|
||||
|
||||
( # sub shell to prevent umask pollution
|
||||
umask 077
|
||||
dd if=/dev/urandom of="${URANDOM_SEED}" count=${poolsize} 2>/dev/null
|
||||
dd if=/dev/urandom of="${urandom_seed}" count=${poolsize} 2>/dev/null
|
||||
)
|
||||
}
|
||||
|
||||
start() {
|
||||
[ -c /dev/urandom ] || return
|
||||
if [ -f "${URANDOM_SEED}" ] ; then
|
||||
cat "${URANDOM_SEED}" > /dev/urandom
|
||||
fi
|
||||
if ! rm -f "${URANDOM_SEED}" ; then
|
||||
ewarn "Skipping ${URANDOM_SEED} initialization (ro root?)"
|
||||
return 0
|
||||
fi
|
||||
if [ -f "${urandom_seed}" ] ; then
|
||||
ebegin "Initializing random number generator"
|
||||
save_seed
|
||||
cat "${urandom_seed}" > /dev/urandom
|
||||
eend $? "Error initializing random number generator"
|
||||
fi
|
||||
rm -f "${urandom_seed}" && save_seed
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
|
@ -1,4 +1,4 @@
|
||||
BOOT = net.lo0 syscons
|
||||
BOOT = dumpon net.lo0 savecore syscons
|
||||
DEFAULT = local.rc powerd syslogd
|
||||
|
||||
TOPDIR = ..
|
||||
|
@ -1,4 +1,4 @@
|
||||
BOOT = consolefont keymaps modules net.lo
|
||||
BOOT = consolefont keymaps modules net.lo procfs
|
||||
DEFAULT = hdparm
|
||||
|
||||
TOPDIR = ..
|
||||
|
@ -1,4 +1,4 @@
|
||||
BOOT = bootmisc checkroot checkfs clock hostname localmount rmnologin sysctl urandom
|
||||
BOOT = bootmisc checkroot checkfs clock hostname localmount rmnologin swap sysctl urandom
|
||||
DEFAULT = local netmount
|
||||
|
||||
LEVELDIR = $(DESTDIR)/etc/runlevels
|
||||
|
@ -47,7 +47,7 @@ mount_svcdir() {
|
||||
cp -p "${RC_SVCDIR}"/deptree "${RC_SVCDIR}"/depconfig \
|
||||
"${RC_SVCDIR}"/nettree "${RC_LIBDIR}"/tmp 2>/dev/null
|
||||
fi
|
||||
try mdconfig -a -t malloc -s "${RC_SVCSIZE:-1024}"k -u 0
|
||||
try mdconfig -a -t malloc -s "${rc_svcsize:-1024}"k -u 0
|
||||
try newfs -b 4096 -i 1024 -n /dev/md0
|
||||
try mount -o rw,noexec,nosuid /dev/md0 "${RC_SVCDIR}"
|
||||
if ${dotmp} ; then
|
||||
@ -60,6 +60,7 @@ mount_svcdir() {
|
||||
|
||||
. "${RC_LIBDIR}"/sh/init-functions.sh
|
||||
. "${RC_LIBDIR}"/sh/functions.sh
|
||||
[ -r /etc/rc.conf ] && . /etc/rc.conf
|
||||
|
||||
# Disable devd until we need it
|
||||
[ "${RC_UNAME}" = "FreeBSD" ] && sysctl hw.bus.devctl_disable=1 >/dev/null
|
||||
|
@ -66,8 +66,8 @@ mount_svcdir() {
|
||||
devtmp="/dev/ram1"
|
||||
fs="ext2"
|
||||
for x in ${devdir} ${devtmp}; do
|
||||
try dd if=/dev/zero of="${x}" bs=1k count="${svcsize}"
|
||||
try mkfs -t "${fs}" -i 1024 -vm0 "${x}" "${svcsize}"
|
||||
try dd if=/dev/zero of="${x}" bs=1k count="${rc_svcsize:-1024}"
|
||||
try mkfs -t "${fs}" -i 1024 -vm0 "${x}" "${rc_svcsize:-1024}"
|
||||
done
|
||||
else
|
||||
echo
|
||||
@ -99,12 +99,12 @@ mount_svcdir() {
|
||||
fi
|
||||
}
|
||||
|
||||
_RC_GET_KV_CACHE=""
|
||||
_rc_get_kv_cache=""
|
||||
get_KV() {
|
||||
[ -z "${_RC_GET_KV_CACHE}" ] \
|
||||
[ -z "${_rc_get_kv_cache}" ] \
|
||||
&& _RC_GET_KV_CACHE="$(uname -r)"
|
||||
|
||||
echo "$(KV_to_int "${_RC_GET_KV_CACHE}")"
|
||||
echo "$(KV_to_int "${_rc_get_kv_cache}")"
|
||||
|
||||
return $?
|
||||
}
|
||||
@ -112,12 +112,13 @@ get_KV() {
|
||||
. /etc/init.d/functions.sh
|
||||
. "${RC_LIBDIR}"/sh/init-functions.sh
|
||||
. "${RC_LIBDIR}"/sh/rc-functions.sh
|
||||
[ -r /etc/rc.conf ] && . /etc/rc.conf
|
||||
|
||||
# Set the console loglevel to 1 for a cleaner boot
|
||||
# the logger should anyhow dump the ring-0 buffer at start to the
|
||||
# logs, and that with dmesg can be used to check for problems
|
||||
if [ -n "${RC_DMESG_LEVEL}" -a "${RC_SYS}" != "VPS" ]; then
|
||||
dmesg -n "${RC_DMESG_LEVEL}"
|
||||
if [ -n "${dmesg_level}" -a "${RC_SYS}" != "VPS" ]; then
|
||||
dmesg -n "${dmesg_level}"
|
||||
fi
|
||||
|
||||
check_statedir /proc
|
||||
@ -192,14 +193,14 @@ fi
|
||||
# - check boot parameters
|
||||
# - make sure the required binaries exist
|
||||
# - make sure the kernel has support
|
||||
if [ "${RC_DEVICES}" = "static" -o "${RC_SYS}" = "VPS" ]; then
|
||||
if [ "${rc_devices}" = "static" -o "${RC_SYS}" = "VPS" ]; then
|
||||
ebegin "Using existing device nodes in /dev"
|
||||
eend 0
|
||||
elif [ "${RC_UNAME}" = "GNU/kFreeBSD" ]; then
|
||||
ebegin "Using kFreeBSD devfs in /dev"
|
||||
eend 0
|
||||
else
|
||||
case ${RC_DEVICES} in
|
||||
case ${rc_devices} in
|
||||
devfs) managers="devfs udev mdev";;
|
||||
udev) managers="udev devfs mdev";;
|
||||
mdev) managers="mdev udev devfs";;
|
||||
@ -235,7 +236,7 @@ for x in "devpts /dev/pts 0755 ,gid=5,mode=0620" "tmpfs /dev/shm 1777 ,nodev"; d
|
||||
mountinfo -q "$2" && continue
|
||||
|
||||
if [ ! -d "$2" ] && \
|
||||
[ "${devfs}" = "yes" -o "${udev}" = "yes" ]; then
|
||||
[ "${m}" = "devfs" -o "${m}" = "udev" ]; then
|
||||
mkdir -m "$3" -p "$2" >/dev/null 2>/dev/null || \
|
||||
ewarn "Could not create $2!"
|
||||
fi
|
||||
|
@ -1,5 +1,5 @@
|
||||
DIR = $(RC_LIB)/sh
|
||||
CONF = functions.sh init-functions.sh init-common-post.sh \
|
||||
INC = functions.sh init-functions.sh init-common-post.sh \
|
||||
rc-functions.sh rc-mount.sh
|
||||
BIN = gendepends.sh net.sh rc-mount.sh rc-help.sh runscript.sh
|
||||
|
||||
|
@ -77,12 +77,12 @@ for SVCNAME in * ; do
|
||||
depend
|
||||
|
||||
# Add any user defined depends
|
||||
config ${RC_CONFIG}
|
||||
need ${RC_NEED}
|
||||
use ${RC_USE}
|
||||
before ${RC_BEFORE}
|
||||
after ${RC_AFTER}
|
||||
provide ${RC_PROVIDE}
|
||||
config ${rc_config} ${RC_CONFIG}
|
||||
need ${rc_need} ${RC_NEED}
|
||||
use ${rc_use} ${RC_USE}
|
||||
before ${rc_before} ${RC_BEFORE}
|
||||
after ${rc_after} ${RC_AFTER}
|
||||
provide ${rc_provide} ${RC_PROVIDE}
|
||||
fi
|
||||
)
|
||||
done
|
||||
|
@ -63,9 +63,13 @@ check_statedir() {
|
||||
#splash "critical" &
|
||||
echo
|
||||
eerror "To function properly, \"$1\" needs to exist."
|
||||
if yesno ${RC_FORCE_AUTO}; then
|
||||
if yesno ${rc_force_auto:-${RC_FORCE_AUTO}}; then
|
||||
eerror "Attempting to create \"$1\" for you ..."
|
||||
if [ "${RC_UNAME}" = "Linux" ]; then
|
||||
mount -o remount,rw /
|
||||
else
|
||||
mount -u -o rw /
|
||||
fi
|
||||
mkdir -p "$1"
|
||||
fi
|
||||
if [ ! -d "$1" ] ; then
|
||||
|
@ -45,6 +45,7 @@ stop_addon() {
|
||||
( import_addon "$1-stop" )
|
||||
}
|
||||
|
||||
net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
|
||||
is_net_fs() {
|
||||
[ -z "$1" ] && return 1
|
||||
|
||||
@ -54,7 +55,7 @@ is_net_fs() {
|
||||
|
||||
# Fall back on fs types
|
||||
local t=$(mountinfo --fstype "$1")
|
||||
for x in ${RC_NET_FS_LIST}; do
|
||||
for x in ${net_fs_list}; do
|
||||
[ "${x}" = "${t}" ] && return 0
|
||||
done
|
||||
return 1
|
||||
|
@ -146,7 +146,7 @@ if yesno ${BE_VERBOSE}; then
|
||||
printf "
|
||||
${CYAN}Dependencies:${OFF}
|
||||
|
||||
This is the heart of the Gentoo RC-Scripts, as it determines the order
|
||||
This is the heart of the OpenRC, as it determines the order
|
||||
in which services gets started, and also to some extend what services
|
||||
get started in the first place.
|
||||
|
||||
@ -252,9 +252,7 @@ printf "
|
||||
"
|
||||
fi
|
||||
|
||||
printf " /etc/conf.d/rc
|
||||
/etc/conf.d/rc.\${RC_SOFTLEVEL}
|
||||
/etc/conf.d/${SERVICE}
|
||||
printf " /etc/conf.d/${SERVICE}
|
||||
/etc/conf.d/${SERVICE}.\${RC_SOFTLEVEL}
|
||||
/etc/rc.conf
|
||||
\${RC_SOFTLEVEL} denotes the name of the runlevel"
|
||||
@ -263,8 +261,8 @@ if yesno ${BE_VERBOSE}; then
|
||||
printf "
|
||||
You can add extra dependencies to ${SERVICE} by adding some variables to
|
||||
/etc/conf.d/${SERVICE}
|
||||
RC_NEED=\"openvpn ntpd\"
|
||||
RC_USE=\"dns\"
|
||||
rc_need=\"openvpn ntpd\"
|
||||
rc_use=\"dns\"
|
||||
|
||||
This makes ${SERVICE} need openvpn and ntpd, while it just uses dns.
|
||||
|
||||
|
@ -59,18 +59,18 @@ describe() {
|
||||
done
|
||||
}
|
||||
|
||||
yesno ${RC_DEBUG} && set -x
|
||||
yesno ${rc_debug} && set -x
|
||||
|
||||
# If we're net.eth0 or openvpn.work then load net or openvpn config
|
||||
rc_c=${SVCNAME%%.*}
|
||||
if [ -n "${rc_c}" -a "${rc_c}" != "${SVCNAME}" ]; then
|
||||
if [ -e "/etc/conf.d/${rc_c}.${RC_SOFTLEVEL}" ]; then
|
||||
. "/etc/conf.d/${rc_c}.${RC_SOFTLEVEL}"
|
||||
elif [ -e "/etc/conf.d/${rc_c}" ]; then
|
||||
. "/etc/conf.d/${rc_c}"
|
||||
_c=${SVCNAME%%.*}
|
||||
if [ -n "${_c}" -a "${_c}" != "${SVCNAME}" ]; then
|
||||
if [ -e "/etc/conf.d/${_c}.${RC_SOFTLEVEL}" ]; then
|
||||
. "/etc/conf.d/${_c}.${RC_SOFTLEVEL}"
|
||||
elif [ -e "/etc/conf.d/${_c}" ]; then
|
||||
. "/etc/conf.d/${_c}"
|
||||
fi
|
||||
fi
|
||||
unset rc_c
|
||||
unset _c
|
||||
|
||||
# Overlay with our specific config
|
||||
if [ -e "/etc/conf.d/${SVCNAME}.${RC_SOFTLEVEL}" ]; then
|
||||
@ -83,7 +83,7 @@ fi
|
||||
[ -e /etc/rc.conf ] && . /etc/rc.conf
|
||||
|
||||
# Apply any ulimit defined
|
||||
[ -n "${RC_ULIMIT}" ] && ulimit ${RC_ULIMIT}
|
||||
[ -n "${rc_ulimit:-${RC_ULIMIT}}" ] && ulimit ${rc_ulimit:-${RC_ULIMIT}}
|
||||
|
||||
# Load our script
|
||||
. $1
|
||||
@ -128,10 +128,10 @@ fi
|
||||
|
||||
while [ -n "$1" ]; do
|
||||
# See if we have the required function and run it
|
||||
for rc_x in describe start stop ${extra_commands:-${opts}}; do
|
||||
if [ "${rc_x}" = "$1" ]; then
|
||||
for _cmd in describe start stop ${extra_commands:-${opts}}; do
|
||||
if [ "${_cmd}" = "$1" ]; then
|
||||
if type "$1" >/dev/null 2>&1; then
|
||||
unset rc_x
|
||||
unset _cmd
|
||||
if type "$1"_pre >/dev/null 2>&1; then
|
||||
"$1"_pre || exit $?
|
||||
fi
|
||||
@ -142,7 +142,7 @@ while [ -n "$1" ]; do
|
||||
shift
|
||||
continue 2
|
||||
else
|
||||
if [ "${rc_x}" = "start" -o "${rc_x}" = "stop" ]; then
|
||||
if [ "${_cmd}" = "start" -o "${_cmd}" = "stop" ]; then
|
||||
exit 0
|
||||
else
|
||||
eerror "${SVCNAME}: function \`$1' defined but does not exist"
|
||||
|
@ -205,7 +205,7 @@ int fstabinfo (int argc, char **argv)
|
||||
}
|
||||
|
||||
/* No point in outputting if quiet */
|
||||
if (rc_env_bool ("RC_QUIET"))
|
||||
if (rc_yesno (getenv ("RC_QUIET")))
|
||||
continue;
|
||||
|
||||
switch (output) {
|
||||
|
@ -32,33 +32,28 @@
|
||||
|
||||
#include "librc.h"
|
||||
|
||||
bool rc_env_bool (const char *var)
|
||||
bool rc_yesno (const char *value)
|
||||
{
|
||||
char *v;
|
||||
|
||||
if (! var)
|
||||
return (false);
|
||||
|
||||
if (! (v = getenv (var))) {
|
||||
errno = ENOENT;
|
||||
if (! value) {
|
||||
errno = EINVAL;
|
||||
return (false);
|
||||
}
|
||||
|
||||
if (strcasecmp (v, "true") == 0 ||
|
||||
strcasecmp (v, "y") == 0 ||
|
||||
strcasecmp (v, "yes") == 0 ||
|
||||
strcasecmp (v, "1") == 0)
|
||||
if (strcasecmp (value, "yes") == 0 ||
|
||||
strcasecmp (value, "y") == 0 ||
|
||||
strcasecmp (value, "true") == 0 ||
|
||||
strcasecmp (value, "1") == 0)
|
||||
return (true);
|
||||
|
||||
if (strcasecmp (v, "false") != 0 &&
|
||||
strcasecmp (v, "n") != 0 &&
|
||||
strcasecmp (v, "no") != 0 &&
|
||||
strcasecmp (v, "0") != 0)
|
||||
if (strcasecmp (value, "no") != 0 &&
|
||||
strcasecmp (value, "n") != 0 &&
|
||||
strcasecmp (value, "false") != 0 &&
|
||||
strcasecmp (value, "0") != 0)
|
||||
errno = EINVAL;
|
||||
|
||||
return (false);
|
||||
}
|
||||
librc_hidden_def(rc_env_bool)
|
||||
librc_hidden_def(rc_yesno)
|
||||
|
||||
char *rc_strcatpaths (const char *path1, const char *paths, ...)
|
||||
{
|
||||
|
@ -81,7 +81,6 @@ librc_hidden_proto(rc_deptree_load)
|
||||
librc_hidden_proto(rc_deptree_order)
|
||||
librc_hidden_proto(rc_deptree_update)
|
||||
librc_hidden_proto(rc_deptree_update_needed)
|
||||
librc_hidden_proto(rc_env_bool)
|
||||
librc_hidden_proto(rc_find_pids)
|
||||
librc_hidden_proto(rc_runlevel_exists)
|
||||
librc_hidden_proto(rc_runlevel_get)
|
||||
@ -123,5 +122,6 @@ librc_hidden_proto(rc_strlist_delete)
|
||||
librc_hidden_proto(rc_strlist_free)
|
||||
librc_hidden_proto(rc_strlist_join)
|
||||
librc_hidden_proto(rc_strlist_reverse)
|
||||
librc_hidden_proto(rc_yesno)
|
||||
|
||||
#endif
|
||||
|
@ -365,6 +365,7 @@ int mountinfo (int argc, char **argv)
|
||||
char *n;
|
||||
int opt;
|
||||
int result;
|
||||
bool quiet;
|
||||
|
||||
#define DO_REG(_var) \
|
||||
if (_var) free (_var); \
|
||||
@ -442,12 +443,13 @@ int mountinfo (int argc, char **argv)
|
||||
rc_strlist_reverse (nodes);
|
||||
|
||||
result = EXIT_FAILURE;
|
||||
quiet = rc_yesno (getenv ("RC_QUIET"));
|
||||
STRLIST_FOREACH (nodes, n, i) {
|
||||
if (point_regex && regexec (point_regex, n, 0, NULL, 0) != 0)
|
||||
continue;
|
||||
if (skip_point_regex && regexec (skip_point_regex, n, 0, NULL, 0) == 0)
|
||||
continue;
|
||||
if (! rc_env_bool ("RC_QUIET"))
|
||||
if (! quiet)
|
||||
printf ("%s\n", n);
|
||||
result = EXIT_SUCCESS;
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ void rc_logger_open (const char *level)
|
||||
if (! isatty (STDOUT_FILENO))
|
||||
return;
|
||||
|
||||
if (! rc_env_bool ("RC_LOGGER"))
|
||||
if (! rc_conf_yesno ("rc_logger"))
|
||||
return;
|
||||
|
||||
if (pipe (signal_pipe) == -1)
|
||||
|
@ -38,6 +38,7 @@
|
||||
#endif
|
||||
|
||||
#include <sys/utsname.h>
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -50,10 +51,49 @@
|
||||
#define PROFILE_ENV "/etc/profile.env"
|
||||
#define SYS_WHITELIST RC_LIBDIR "/conf.d/env_whitelist"
|
||||
#define USR_WHITELIST "/etc/conf.d/env_whitelist"
|
||||
#define RC_CONFIG "/etc/conf.d/rc"
|
||||
#define RC_CONF "/etc/rc.conf"
|
||||
#define RC_CONF_OLD "/etc/conf.d/rc"
|
||||
|
||||
#define PATH_PREFIX RC_LIBDIR "/bin:/bin:/sbin:/usr/bin:/usr/sbin"
|
||||
|
||||
static char **rc_conf = NULL;
|
||||
|
||||
static void _free_rc_conf (void)
|
||||
{
|
||||
rc_strlist_free (rc_conf);
|
||||
}
|
||||
|
||||
bool rc_conf_yesno (const char *setting)
|
||||
{
|
||||
if (! rc_conf) {
|
||||
char *line;
|
||||
int i;
|
||||
|
||||
rc_conf = rc_config_load (RC_CONF);
|
||||
atexit (_free_rc_conf);
|
||||
|
||||
/* Support old configs */
|
||||
if (exists (RC_CONF_OLD)) {
|
||||
char **old = rc_config_load (RC_CONF_OLD);
|
||||
rc_strlist_join (&rc_conf, old);
|
||||
rc_strlist_free (old);
|
||||
}
|
||||
|
||||
/* Convert old uppercase to lowercase */
|
||||
STRLIST_FOREACH (rc_conf, line, i) {
|
||||
char *p = line;
|
||||
while (p && *p && *p != '=') {
|
||||
if (isupper (*p))
|
||||
*p = tolower (*p);
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return (rc_yesno (rc_config_value (rc_conf, setting)));
|
||||
}
|
||||
|
||||
char **env_filter (void)
|
||||
{
|
||||
char **env = NULL;
|
||||
@ -64,10 +104,10 @@ char **env_filter (void)
|
||||
bool got_path = false;
|
||||
char *env_var;
|
||||
int env_len;
|
||||
char *p;
|
||||
char *token;
|
||||
char *sep;
|
||||
char *e;
|
||||
char *p;
|
||||
int pplen = strlen (PATH_PREFIX);
|
||||
|
||||
whitelist = rc_config_list (SYS_WHITELIST);
|
||||
@ -195,45 +235,14 @@ char **env_config (void)
|
||||
char **env = NULL;
|
||||
char *line;
|
||||
int i;
|
||||
char *p;
|
||||
char **config;
|
||||
char *e;
|
||||
#ifdef __linux__
|
||||
char sys[6];
|
||||
#endif
|
||||
struct utsname uts;
|
||||
bool has_net_fs_list = false;
|
||||
FILE *fp;
|
||||
char buffer[PATH_MAX];
|
||||
char *runlevel = rc_runlevel_get ();
|
||||
|
||||
/* Don't trust environ for softlevel yet */
|
||||
snprintf (buffer, PATH_MAX, "%s.%s", RC_CONFIG, runlevel);
|
||||
if (exists (buffer))
|
||||
config = rc_config_load (buffer);
|
||||
else
|
||||
config = rc_config_load (RC_CONFIG);
|
||||
|
||||
STRLIST_FOREACH (config, line, i) {
|
||||
p = strchr (line, '=');
|
||||
if (! p)
|
||||
continue;
|
||||
|
||||
*p = 0;
|
||||
e = getenv (line);
|
||||
if (! e) {
|
||||
*p = '=';
|
||||
rc_strlist_add (&env, line);
|
||||
} else {
|
||||
int len = strlen (line) + strlen (e) + 2;
|
||||
char *new = xmalloc (sizeof (char) * len);
|
||||
snprintf (new, len, "%s=%s", line, e);
|
||||
rc_strlist_add (&env, new);
|
||||
free (new);
|
||||
}
|
||||
}
|
||||
rc_strlist_free (config);
|
||||
|
||||
/* One char less to drop the trailing / */
|
||||
i = strlen ("RC_LIBDIR=") + strlen (RC_LIBDIR) + 1;
|
||||
line = xmalloc (sizeof (char) * i);
|
||||
@ -304,21 +313,6 @@ char **env_config (void)
|
||||
|
||||
#endif
|
||||
|
||||
/* Only add a NET_FS list if not defined */
|
||||
STRLIST_FOREACH (env, line, i)
|
||||
if (strncmp (line, "RC_NET_FS_LIST=", strlen ("RC_NET_FS_LIST=")) == 0) {
|
||||
has_net_fs_list = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (! has_net_fs_list) {
|
||||
i = strlen ("RC_NET_FS_LIST=") + strlen (RC_NET_FS_LIST_DEFAULT) + 1;
|
||||
line = xmalloc (sizeof (char) * i);
|
||||
snprintf (line, i, "RC_NET_FS_LIST=%s", RC_NET_FS_LIST_DEFAULT);
|
||||
rc_strlist_add (&env, line);
|
||||
free (line);
|
||||
}
|
||||
|
||||
/* Some scripts may need to take a different code path if Linux/FreeBSD, etc
|
||||
To save on calling uname, we store it in an environment variable */
|
||||
if (uname (&uts) == 0) {
|
||||
|
@ -64,9 +64,6 @@
|
||||
/* Max buffer to read a line from a file */
|
||||
#define RC_LINEBUFFER 4096
|
||||
|
||||
/* Good defaults just incase user has none set */
|
||||
#define RC_NET_FS_LIST_DEFAULT "afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
|
||||
|
||||
#define ERRX fprintf (stderr, "out of memory\n"); exit (1)
|
||||
|
||||
static inline void *xmalloc (size_t size)
|
||||
@ -113,6 +110,7 @@ static inline bool exists (const char *pathname)
|
||||
return (stat (pathname, &buf) == 0);
|
||||
}
|
||||
|
||||
bool rc_conf_yesno (const char *var);
|
||||
char **env_filter (void);
|
||||
char **env_config (void);
|
||||
|
||||
|
@ -82,7 +82,7 @@ static void print_service (char *service)
|
||||
} else
|
||||
snprintf (status, sizeof (status), " stopped ");
|
||||
|
||||
if (isatty (fileno (stdout)) && ! rc_env_bool ("RC_NOCOLOR"))
|
||||
if (isatty (fileno (stdout)) && ! rc_yesno (getenv ("RC_NOCOLOR")))
|
||||
printf ("\n");
|
||||
ebracket (cols, color, status);
|
||||
}
|
||||
|
@ -185,7 +185,7 @@ int rc_update (int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
verbose = rc_env_bool ("RC_VERBOSE");
|
||||
verbose = rc_yesno (getenv ("RC_VERBOSE"));
|
||||
|
||||
if ((action & DOSHOW && action != DOSHOW) ||
|
||||
(action & DOADD && action != DOADD) ||
|
||||
|
21
src/rc.c
21
src/rc.c
@ -492,6 +492,8 @@ static char read_key (bool block)
|
||||
static bool want_interactive (void)
|
||||
{
|
||||
char c;
|
||||
static bool gotinteractive;
|
||||
static bool interactive;
|
||||
|
||||
if (PREVLEVEL &&
|
||||
strcmp (PREVLEVEL, "N") != 0 &&
|
||||
@ -499,7 +501,11 @@ static bool want_interactive (void)
|
||||
strcmp (PREVLEVEL, "1") != 0)
|
||||
return (false);
|
||||
|
||||
if (! rc_env_bool ("RC_INTERACTIVE"))
|
||||
if (! gotinteractive) {
|
||||
gotinteractive = true;
|
||||
interactive = rc_conf_yesno ("rc_interactive");
|
||||
}
|
||||
if (! interactive)
|
||||
return (false);
|
||||
|
||||
c = read_key (false);
|
||||
@ -793,6 +799,7 @@ int main (int argc, char **argv)
|
||||
int opt;
|
||||
DIR *dp;
|
||||
struct dirent *d;
|
||||
bool parallel;
|
||||
|
||||
atexit (cleanup);
|
||||
if (argv[0])
|
||||
@ -982,7 +989,7 @@ int main (int argc, char **argv)
|
||||
ecolor (ECOLOR_GOOD), ecolor (ECOLOR_BRACKET),
|
||||
ecolor (ECOLOR_NORMAL));
|
||||
|
||||
if (rc_env_bool ("RC_INTERACTIVE"))
|
||||
if (rc_conf_yesno ("rc_interactive"))
|
||||
printf ("Press %sI%s to enter interactive boot mode\n\n",
|
||||
ecolor (ECOLOR_GOOD), ecolor (ECOLOR_NORMAL));
|
||||
|
||||
@ -1156,7 +1163,7 @@ int main (int argc, char **argv)
|
||||
if (newlevel && strcmp (newlevel, bootlevel) == 0 &&
|
||||
(strcmp (runlevel, RC_LEVEL_SINGLE) == 0 ||
|
||||
strcmp (runlevel, RC_LEVEL_SYSINIT) == 0) &&
|
||||
rc_env_bool ("RC_COLDPLUG"))
|
||||
rc_conf_yesno ("rc_coldplug"))
|
||||
{
|
||||
#if defined(__DragonFly__) || defined(__FreeBSD__)
|
||||
/* The net interfaces are easy - they're all in net /dev/net :) */
|
||||
@ -1263,6 +1270,8 @@ int main (int argc, char **argv)
|
||||
if (going_down)
|
||||
rc_runlevel_set (newlevel);
|
||||
|
||||
parallel = rc_conf_yesno ("rc_parallel");
|
||||
|
||||
/* Now stop the services that shouldn't be running */
|
||||
STRLIST_FOREACH (stop_services, service, i) {
|
||||
bool found = false;
|
||||
@ -1278,7 +1287,7 @@ int main (int argc, char **argv)
|
||||
/* We always stop the service when in these runlevels */
|
||||
if (going_down) {
|
||||
pid_t pid = rc_service_stop (service);
|
||||
if (pid > 0 && ! rc_env_bool ("RC_PARALLEL"))
|
||||
if (pid > 0 && ! parallel)
|
||||
rc_waitpid (pid);
|
||||
continue;
|
||||
}
|
||||
@ -1348,7 +1357,7 @@ int main (int argc, char **argv)
|
||||
if ((pid = rc_service_stop (service)) > 0) {
|
||||
add_pid (pid);
|
||||
|
||||
if (! rc_env_bool ("RC_PARALLEL")) {
|
||||
if (! parallel) {
|
||||
rc_waitpid (pid);
|
||||
remove_pid (pid);
|
||||
}
|
||||
@ -1448,7 +1457,7 @@ interactive_option:
|
||||
if ((pid = rc_service_start (service)) > 0) {
|
||||
add_pid (pid);
|
||||
|
||||
if (! rc_env_bool ("RC_PARALLEL")) {
|
||||
if (! parallel) {
|
||||
rc_waitpid (pid);
|
||||
remove_pid (pid);
|
||||
}
|
||||
|
4
src/rc.h
4
src/rc.h
@ -353,12 +353,12 @@ char **rc_config_load (const char *file);
|
||||
/*! Return the value of the entry from a key=value list. */
|
||||
char *rc_config_value (char **list, const char *entry);
|
||||
|
||||
/*! Check if an environment variable is a boolean and return it's value.
|
||||
/*! Check if a variable is a boolean and return it's value.
|
||||
* If variable is not a boolean then we set errno to be ENOENT when it does
|
||||
* not exist or EINVAL if it's not a boolean.
|
||||
* @param variable to check
|
||||
* @return true if it matches true, yes or 1, false if otherwise. */
|
||||
bool rc_env_bool (const char *variable);
|
||||
bool rc_yesno (const char *variable);
|
||||
|
||||
/*! @name String List functions
|
||||
* Handy functions for dealing with string arrays of char **.
|
||||
|
@ -9,7 +9,6 @@ global:
|
||||
rc_deptree_order;
|
||||
rc_deptree_update;
|
||||
rc_deptree_update_needed;
|
||||
rc_env_bool;
|
||||
rc_environ_fd;
|
||||
rc_find_pids;
|
||||
rc_runlevel_exists;
|
||||
@ -52,6 +51,7 @@ global:
|
||||
rc_strlist_free;
|
||||
rc_strlist_join;
|
||||
rc_strlist_reverse;
|
||||
rc_yesno;
|
||||
|
||||
local:
|
||||
*;
|
||||
|
@ -590,7 +590,7 @@ static void svc_start (bool deps)
|
||||
|
||||
state = rc_service_state (service);
|
||||
|
||||
if (rc_env_bool ("IN_HOTPLUG") || in_background) {
|
||||
if (rc_yesno (getenv ("IN_HOTPLUG")) || in_background) {
|
||||
if (! state & RC_SERVICE_INACTIVE &&
|
||||
! state & RC_SERVICE_STOPPED)
|
||||
exit (EXIT_FAILURE);
|
||||
@ -615,7 +615,7 @@ static void svc_start (bool deps)
|
||||
hook_out = RC_HOOK_SERVICE_START_OUT;
|
||||
rc_plugin_run (RC_HOOK_SERVICE_START_IN, applet);
|
||||
|
||||
if (rc_env_bool ("RC_DEPEND_STRICT"))
|
||||
if (rc_conf_yesno ("rc_depend_strict"))
|
||||
depoptions |= RC_DEP_STRICT;
|
||||
|
||||
if (rc_runlevel_starting ())
|
||||
@ -651,7 +651,7 @@ static void svc_start (bool deps)
|
||||
STRLIST_FOREACH (use_services, svc, i)
|
||||
if (rc_service_state (svc) & RC_SERVICE_STOPPED) {
|
||||
pid_t pid = rc_service_start (svc);
|
||||
if (! rc_env_bool ("RC_PARALLEL"))
|
||||
if (! rc_conf_yesno ("rc_parallel"))
|
||||
rc_waitpid (pid);
|
||||
}
|
||||
}
|
||||
@ -805,7 +805,7 @@ static void svc_stop (bool deps)
|
||||
state & RC_SERVICE_FAILED)
|
||||
exit (EXIT_FAILURE);
|
||||
|
||||
if (rc_env_bool ("IN_HOTPLUG") || in_background)
|
||||
if (rc_yesno (getenv ("IN_HOTPLUG")) || in_background)
|
||||
if (! (state & RC_SERVICE_STARTED) &&
|
||||
! (state & RC_SERVICE_INACTIVE))
|
||||
exit (EXIT_FAILURE);
|
||||
@ -833,7 +833,7 @@ static void svc_stop (bool deps)
|
||||
char *svc;
|
||||
int i;
|
||||
|
||||
if (rc_env_bool ("RC_DEPEND_STRICT"))
|
||||
if (rc_conf_yesno ("RC_DEPEND_STRICT"))
|
||||
depoptions |= RC_DEP_STRICT;
|
||||
|
||||
if (rc_runlevel_stopping ())
|
||||
@ -859,7 +859,7 @@ static void svc_stop (bool deps)
|
||||
svcs & RC_SERVICE_INACTIVE)
|
||||
{
|
||||
pid_t pid = rc_service_stop (svc);
|
||||
if (! rc_env_bool ("RC_PARALLEL"))
|
||||
if (! rc_conf_yesno ("rc_parallel"))
|
||||
rc_waitpid (pid);
|
||||
rc_strlist_add (&tmplist, svc);
|
||||
}
|
||||
@ -1087,7 +1087,7 @@ int runscript (int argc, char **argv)
|
||||
setenv ("RC_RUNSCRIPT_PID", pid, 1);
|
||||
|
||||
/* eprefix is kinda klunky, but it works for our purposes */
|
||||
if (rc_env_bool ("RC_PARALLEL")) {
|
||||
if (rc_conf_yesno ("rc_parallel")) {
|
||||
int l = 0;
|
||||
int ll;
|
||||
|
||||
@ -1137,13 +1137,13 @@ int runscript (int argc, char **argv)
|
||||
/* Save the IN_BACKGROUND env flag so it's ONLY passed to the service
|
||||
that is being called and not any dependents */
|
||||
if (getenv ("IN_BACKGROUND")) {
|
||||
in_background = rc_env_bool ("IN_BACKGROUND");
|
||||
ibsave = xstrdup (getenv ("IN_BACKGROUND"));
|
||||
in_background = rc_yesno (ibsave);
|
||||
unsetenv ("IN_BACKGROUND");
|
||||
}
|
||||
|
||||
if (rc_env_bool ("IN_HOTPLUG")) {
|
||||
if (! rc_env_bool ("RC_HOTPLUG") || ! rc_service_plugable (applet))
|
||||
if (rc_yesno (getenv ("IN_HOTPLUG"))) {
|
||||
if (! rc_conf_yesno ("rc_hotplug") || ! rc_service_plugable (applet))
|
||||
eerrorx ("%s: not allowed to be hotplugged", applet);
|
||||
}
|
||||
|
||||
@ -1197,7 +1197,7 @@ int runscript (int argc, char **argv)
|
||||
const char *t[] = { optarg, NULL };
|
||||
const char *s[] = { applet, NULL };
|
||||
|
||||
if (rc_env_bool ("RC_DEPEND_STRICT"))
|
||||
if (rc_conf_yesno ("rc_depend_strict"))
|
||||
depoptions |= RC_DEP_STRICT;
|
||||
|
||||
if (! deptree && ((deptree = _rc_deptree_load ()) == NULL))
|
||||
|
@ -708,8 +708,8 @@ int start_stop_daemon (int argc, char **argv)
|
||||
case_RC_COMMON_GETOPT
|
||||
}
|
||||
|
||||
quiet = rc_env_bool ("RC_QUIET");
|
||||
verbose = rc_env_bool ("RC_VERBOSE");
|
||||
quiet = rc_yesno (getenv ("RC_QUIET"));
|
||||
verbose = rc_yesno (getenv ("RC_VERBOSE"));
|
||||
|
||||
/* Allow start-stop-daemon --signal HUP --exec /usr/sbin/dnsmasq
|
||||
* instead of forcing --stop --oknodo as well */
|
||||
|
Loading…
Reference in New Issue
Block a user