Compare commits

..

2 Commits

Author SHA1 Message Date
William Hubbs
02e7df3f92 release openrc-0.9.1 2011-09-01 17:18:34 -05:00
Diego
a4ecc0eedc Start-stop-daemon: remove call to pam_authenticate 2011-09-01 17:16:31 -05:00
187 changed files with 1265 additions and 2619 deletions

View File

@@ -4,7 +4,12 @@
include Makefile.inc include Makefile.inc
SUBDIR= conf.d doc etc init.d local.d sysctl.d man net scripts sh src SUBDIR= conf.d etc init.d local.d man scripts sh src
# Build our old net foo or not
ifeq (${MKOLDNET},yes)
SUBDIR+= net doc
endif
# Build pkgconfig or not # Build pkgconfig or not
MKPKGCONFIG?= yes MKPKGCONFIG?= yes
@@ -25,8 +30,6 @@ include ${MK}/dist.mk
include ${MK}/git.mk include ${MK}/git.mk
_installafter: _installafter:
ifneq ($(OS),Linux)
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d ${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
endif
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp ${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp
${ECHO} "${VERSION}${GITVER}" > ${DESTDIR}/${LIBEXECDIR}/version ${ECHO} "${VERSION}${GITVER}" > ${DESTDIR}/${LIBEXECDIR}/version

View File

@@ -1,3 +1,3 @@
NAME= openrc NAME= openrc
VERSION= 0.10 VERSION= 0.9.1
PKG= ${NAME}-${VERSION} PKG= ${NAME}-${VERSION}

17
README
View File

@@ -12,10 +12,11 @@ LIBNAME=lib64
DESTDIR=/tmp/openrc-image DESTDIR=/tmp/openrc-image
MKPAM=pam MKPAM=pam
MKPKGCONFIG=no MKPKGCONFIG=no
MKRCSYS=prefix
MKSELINUX=yes MKSELINUX=yes
MKSTATICLIBS=no
MKTERMCAP=ncurses MKTERMCAP=ncurses
MKTERMCAP=termcap MKTERMCAP=termcap
MKOLDNET=yes
PKG_PREFIX=/usr/pkg PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local LOCAL_PREFIX=/usr/local
PREFIX=/usr/local PREFIX=/usr/local
@@ -33,6 +34,20 @@ LOCAL_PREFIX should be set when to where user maintained packages are.
Only set LOCAL_PREFIX if different from PKG_PREFIX. Only set LOCAL_PREFIX if different from PKG_PREFIX.
PREFIX should be set when OpenRC is not installed to /. PREFIX should be set when OpenRC is not installed to /.
MKRCSYS should be set only if you need to specify a default system
subtype. The subtype should be set to match the type of environment the
file is installed into, not the virtualization the environment is
capable of handling. Here is a list of subtypes and their meanings.
jail FreeBSD jail
lxc Linux container
openvz Linux OpenVZ
prefix Linux and *BSD prefix system
uml UsermodeLinux
vserver Linux vserver
xen0 Linux and NetBSD xen0 Domain
xenU Linux and NetBSD xenU Domain
If any of the following files exist then we do not overwrite them If any of the following files exist then we do not overwrite them
/etc/devd.conf /etc/devd.conf
/etc/rc /etc/rc

40
README.newnet Normal file
View File

@@ -0,0 +1,40 @@
The following applies only to the newnet stack, which is not presently
maintained in OpenRC. The oldnet stack is maintained instead.
- Robin H. Johnson <robbat2@gentoo.org>, 2011/02/21
OpenRC Network Ideals
---------------------
The new style networking for OpenRC is very simplistic - provide a basic means
of configuring static interface address and routes whilst allowing the
possibility to run any command at any point.
In a nutshell, init.d/network is a wrapper around ifconfig(8) and
init.d/staticroute is wrapper around route(8).
In the Perfect World (TM) ifconfig should be able to configure everything
about the interface easily * . The BSD family almost get this right and Linux
epically fails.
* Only static configuration, including link setup.
For dynamic, static, IPv4LL, arping and per ssid IPv4 setup dhcpcd-5.x
provides your needs.
It fails because there are many tools to do the same job and often have
vastly different syntax where they could be similar. In other words, there
is no coherence.
OpenRC-0.4.x and older (inc Gentoo baselayout-1) had a collection of scripts
for each tool and allowed a script per interface. Over the years, this design
has proven very hard to maintain as each user has their own idea of how
things should work. Also, there were (and still are) race conditions.
So where do we go from here?
Well, it's possible to use the new network scripts using the tools
currently available. It's just harder as you have to know them and their
documentation can be lacking at times.
The correct end goal is a BSD style ifconfig tool.
I've started work on it, but the project has stalled somewhat.
It's display only right now and the source is not yet publicly available.
If you have the skills and share the vision then contact me privately and
we'll take it from there.

16
TODO
View File

@@ -1,21 +1,7 @@
- ensure all forks block, restore and unblock signals. needs review - ensure all forks block, restore and unblock signals. needs review
- add support somehow for optional translations - add support somehow for optional translations
- oldnet[bridging]: Review setting of bridge configuration on dynamic interface add - oldnet[bridging]: Review setting of bridge configuration on dynamic interface add
- Document rc-depend binary. - Document rc-depend binary.
- _ifindex is not a reliable means of calculating metrics:
_ifindex is used for calculating metrics for new devices but has a major
problem: Since it's only the nth entry in /proc/net/dev
And devices may be removed from that file, and reordered, you won't always
get the same result.
If you do:
- add eth0 - _ifindex (eth0=0)
- add vlan1 - _ifindex (eth0=0,vlan1=1)
- add vlan2 - _ifindex (eth0=0,vlan1=1,vlan2=2)
- rem vlan1 - _ifindex (eth0=0,vlan2=1)
- add vlan3 - _ifindex (eth0=0,vlan2=1,vlan3=2)
Now your routing table has entries for both vlan2 and vlan3 with a metric of 2.

View File

@@ -1,23 +1,19 @@
DIR= ${CONFDIR} DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount network staticroute urandom \ CONF= bootmisc fsck hostname localmount network staticroute urandom
${CONF-${OS}}
TARGETS+= network staticroute TARGETS+= network staticroute
CLEANFILES+= network staticroute CLEANFILES+= network staticroute
MK= ../mk MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
include Makefile.${OS}
CONF-FreeBSD= ipfw moused powerd rarpd savecore syscons
CONF-Linux= consolefont dmesg hwclock keymaps killprocs modules
CONF-NetBSD= moused rarpd savecore
include ${MK}/scripts.mk include ${MK}/scripts.mk
network: network.in network${SFX} SOS?= BSD
cat $^ > $@
staticroute: staticroute${SFX} network: network.in network.${SOS}
cp $@${SFX} $@ cp $@.in $@
[ -e $@.${SOS} ] && cat $@.${SOS} >> $@ || true
staticroute: staticroute.${SOS}
cp $@.${SOS} $@

1
conf.d/Makefile.FreeBSD Normal file
View File

@@ -0,0 +1 @@
CONF+= ipfw moused powerd rarpd savecore syscons

2
conf.d/Makefile.Linux Normal file
View File

@@ -0,0 +1,2 @@
CONF+= consolefont dmesg hwclock keymaps killprocs modules
SOS= Linux

1
conf.d/Makefile.NetBSD Normal file
View File

@@ -0,0 +1 @@
CONF+= moused rarpd savecore

View File

@@ -1,10 +1,10 @@
# Set CLOCK to "UTC" if your system clock is set to UTC (also known as # Set CLOCK to "UTC" if your system clock is set to UTC (also known as
# Greenwich Mean Time). If your clock is set to the local time, then # 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 # set CLOCK to "local". Note that if you dual boot with Windows, then
# you should set it to "local". # you should set it to "local".
clock="UTC" clock="UTC"
# If you want to set the Hardware Clock to the current System Time # 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. # You normally don't need to do this if you run a ntp daemon.
clock_systohc="NO" clock_systohc="NO"

View File

@@ -4,7 +4,3 @@ clean_tmp_dirs="/tmp"
# Should we wipe the tmp paths completely or just selectively remove known # Should we wipe the tmp paths completely or just selectively remove known
# locks / files / etc... ? # locks / files / etc... ?
wipe_tmp="YES" wipe_tmp="YES"
# Write the initial dmesg log into /var/log/dmesg after boot
# This may be useful if you need the kernel boot log afterwards
log_dmesg="YES"

View File

@@ -1,10 +1,9 @@
# The consolefont service is not activated by default. If you need to
# use it, you should run "rc-update add consolefont boot" as root.
#
# consolefont specifies the default font that you'd like Linux to use on the # consolefont specifies the default font that you'd like Linux to use on the
# console. You can find a good selection of fonts in /usr/share/consolefonts; # console. You can find a good selection of fonts in /usr/share/consolefonts;
# you shouldn't specify the trailing ".psf.gz", just the font name below. # you shouldn't specify the trailing ".psf.gz", just the font name below.
# To use the default console font, comment out the CONSOLEFONT setting below. # To use the default console font, comment out the CONSOLEFONT setting below.
# This setting is used by the /etc/init.d/consolefont script (NOTE: if you do
# not want to use it, run "rc-update del consolefont boot" as root).
consolefont="default8x16" consolefont="default8x16"
# consoletranslation is the charset map file to use. Leave commented to use # consoletranslation is the charset map file to use. Leave commented to use

View File

@@ -13,13 +13,6 @@
#fsck_passno=">1" #fsck_passno=">1"
#fsck_passno="<2" #fsck_passno="<2"
# If passno is not enough granularity, you can also specify mountpoints to
# check. This should NOT be used for the default non-multiplexed fsck, or your
# system might not be checked. Additionally, it is mutually exclusive with
# the fsck_passno setting.
#fsck_mnt=""
#fsck_mnt="/home"
# Most modern fs's don't require a full fsck on boot, but for those that do # Most modern fs's don't require a full fsck on boot, but for those that do
# it may be advisable to skip this when running on battery. # it may be advisable to skip this when running on battery.
# WARNING: Do not turn this off if you have any JFS partitions. # WARNING: Do not turn this off if you have any JFS partitions.

View File

@@ -1,20 +1,22 @@
# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as # Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as
# Greenwich Mean Time). If that clock is set to the local time, then # Greenwich Mean Time). If that clock is set to the local time, then
# set CLOCK to "local". Note that if you dual boot with Windows, then # set CLOCK to "local". Note that if you dual boot with Windows, then
# you should set it to "local". # you should set it to "local".
clock="UTC" clock="UTC"
# If you want the hwclock script to set the system time (software clock) # If you want to set the Hardware Clock to the current System Time
# to match the current hardware clock during bootup, leave this # (software clock) during shutdown, then say "YES" here.
# commented out. # You normally don't need to do this if you run a ntp daemon.
# However, you can set this to "NO" ifyou are running a modern kernel clock_systohc="NO"
# with CONFIG_RTC_HCTOSYS set to y and your hardware clock set to UTC.
#clock_hctosys="YES"
# If you do not want to set the hardware clock to the current system
# time (software clock) during shutdown, set this to no.
#clock_systohc="YES"
# If you want to set the system time to the current hardware clock
# during bootup, then say "YES" here. You do not need this if you are
# running a modern kernel with CONFIG_RTC_HCTOSYS set to y.
# Also, be aware that if you set this to "NO", the system time will
# never be saved to the hardware clock unless you set
# clock_systohc="YES" above.
clock_hctosys="YES"
# If you wish to pass any other arguments to hwclock during bootup, # If you wish to pass any other arguments to hwclock during bootup,
# you may do so here. Alpha users may wish to use --arc or --srm here. # you may do so here. Alpha users may wish to use --arc or --srm here.
clock_args="" clock_args=""

View File

@@ -12,7 +12,7 @@ windowkeys="NO"
extended_keymaps="" extended_keymaps=""
#extended_keymaps="backspace keypad euro2" #extended_keymaps="backspace keypad euro2"
# Tell dumpkeys(1) to interpret character action codes to be # Tell dumpkeys(1) to interpret character action codes to be
# from the specified character set. # from the specified character set.
# This only matters if you set unicode="yes" in /etc/rc.conf. # This only matters if you set unicode="yes" in /etc/rc.conf.
# For a list of valid sets, run `dumpkeys --help` # For a list of valid sets, run `dumpkeys --help`

View File

@@ -11,6 +11,6 @@
# You can also multiplex the init script for each device like so # You can also multiplex the init script for each device like so
# ln -s moused /etc/init.d/moused.ums0 # ln -s moused /etc/init.d/moused.ums0
# This enables you to have a config file per mouse (forces moused_device # This enables you to have a config file per mouse (forces moused_device
# to ums0 in this case) and control each mouse. # to ums0 in this case) and control each mouse.
# devd can also start and stop these mice, which laptop users will find handy. # devd can also start and stop these mice, which laptop users will find handy.

View File

@@ -1,4 +1,4 @@
# This blank configuration will automatically use DHCP for any net.* # This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration, # scripts in /etc/init.d. To create a more complete configuration,
# please review /usr/share/doc/openrc*/net.example* and save your configuration # please review /usr/share/doc/openrc/net.example and save your configuration
# in /etc/conf.d/net (this file :]!). # in /etc/conf.d/net (this file :]!).

View File

@@ -2,4 +2,4 @@
# (say for crypt swap), so you will need to customize this # (say for crypt swap), so you will need to customize this
# behavior. If you have /var on a separate partition, then # behavior. If you have /var on a separate partition, then
# make sure this path lives on your root device somewhere. # make sure this path lives on your root device somewhere.
urandom_seed="/var/lib/misc/random-seed" urandom_seed="/var/run/random-seed"

View File

@@ -1,11 +1,7 @@
DIR= ${DOCDIR}/openrc DIR= ${DOCDIR}/openrc
SRCS= net.example.in
INC= net.example INC= net.example
MK= ../mk MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
include Makefile.${OS}
%.example.in: %.example${SFX}
${CP} $< $@
include ${MK}/scripts.mk include ${MK}/scripts.mk

5
doc/Makefile.FreeBSD Normal file
View File

@@ -0,0 +1,5 @@
SRCS+= net.example.in
.SUFFIXES: .BSD.in
.BSD.in:
${CP} $< $@

5
doc/Makefile.Linux Normal file
View File

@@ -0,0 +1,5 @@
SRCS+= net.example.in
.SUFFIXES: .Linux.in
.Linux.in:
${CP} $< $@

5
doc/Makefile.NetBSD Normal file
View File

@@ -0,0 +1,5 @@
SRCS+= net.example.in
.SUFFIXES: .BSD.in
.BSD.in:
${CP} $< $@

View File

@@ -388,17 +388,6 @@
# #
# ${IFACE} is set to the interface being brought up/down # ${IFACE} is set to the interface being brought up/down
# ${IFVAR} is ${IFACE} converted to variable name bash allows # ${IFVAR} is ${IFACE} converted to variable name bash allows
#
# For historical and compatibility reasons, preup is actually normally called
# in the following sequence: up ; preup ; up.
# The first up causes the kernel to initialize the device, so
# that it is available for use in the preup function. However, for some
# hardware, e.g. CAN devices, some configuration is needed before trying to up
# the interface will actually work. For such hardware, the
# up_before_preup variables will allow skipping the first up call if set
# to yes.
#up_before_preup_IFVAR="NO"
#up_before_preup="NO"
#preup() { #preup() {
# # Remember to return 0 on success # # Remember to return 0 on success

View File

@@ -34,7 +34,7 @@
# In other words, you probably should DO NOTHING HERE... # In other words, you probably should DO NOTHING HERE...
# Prefer ifconfig over iproute2 # Prefer ifconfig over iproute2
#modules="!iproute2" #modules="ifconfig"
# You can also specify other modules for an interface # You can also specify other modules for an interface
# In this case we prefer udhcpc over dhcpcd # In this case we prefer udhcpc over dhcpcd
@@ -57,7 +57,7 @@
# If you don't specify an interface then we prefer iproute2 if it's installed # If you don't specify an interface then we prefer iproute2 if it's installed
# To prefer ifconfig over iproute2 # To prefer ifconfig over iproute2
#modules="!iproute2" #modules="ifconfig"
# For a static configuration, use something like this # For a static configuration, use something like this
# (They all do exactly the same thing btw) # (They all do exactly the same thing btw)
@@ -68,7 +68,6 @@
# NOTE: ifconfig creates an aliased device for each extra IPv4 address # NOTE: ifconfig creates an aliased device for each extra IPv4 address
# (eth0:1, eth0:2, etc) # (eth0:1, eth0:2, etc)
# iproute2 does not do this as there is no need to # iproute2 does not do this as there is no need to
# WARNING: You cannot mix multiple addresses on a line with other parameters!
#config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24" #config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24"
# However, that only works with CIDR addresses, so you can't use netmask. # However, that only works with CIDR addresses, so you can't use netmask.
@@ -86,14 +85,6 @@
# If you don't want ANY address (only useful when calling for advanced stuff) # If you don't want ANY address (only useful when calling for advanced stuff)
#config_eth0="null" #config_eth0="null"
# If you need to pass parameters to go with an address, you can do so on the
# same line as the address. You should split multiple addresses with newlines.
# WARNING: You cannot mix multiple addresses on a line with other parameters!
#config_eth0="192.168.0.2/24 scope host"
#config_eth0="4321:0:1:2:3:4:567:89ab/64 nodad home preferred_lft 0"
#config_eth0="192.168.0.2/24 scope host
#4321:0:1:2:3:4:567:89ab/64 nodad home preferred_lft 0"
# Here's how to do routing if you need it # Here's how to do routing if you need it
# We add an IPv4 default route, IPv4 subnet route and an IPv6 unicast route # We add an IPv4 default route, IPv4 subnet route and an IPv6 unicast route
#routes_eth0="default via 192.168.0.1 #routes_eth0="default via 192.168.0.1
@@ -359,7 +350,7 @@
# By default we don't wait for wpa_supplicant to associate and authenticate. # By default we don't wait for wpa_supplicant to associate and authenticate.
# If you need to change this behaviour then you don't know how our scripts work # If you need to change this behaviour then you don't know how our scripts work
# and setting this value could cause strange things to happen. # and setting this value could cause strange things to happen.
# If you would like it to wait, you can specify how long in seconds. # If you would like to, so can specify how long in seconds.
#associate_timeout_eth0=60 #associate_timeout_eth0=60
# A value of 0 means wait forever. # A value of 0 means wait forever.
@@ -586,27 +577,10 @@
#vlan_start_eth0="no" #vlan_start_eth0="no"
# If you do the above then you may want to depend on eth0 like so # If you do the above then you may want to depend on eth0 like so
# rc_net_vlan1_need="net.eth0" # rc_need_vlan1="net.eth0"
# NOTE: depend functions only work in /etc/conf.d/net # NOTE: depend functions only work in /etc/conf.d/net
# and not in profile configs such as /etc/conf.d/net.foo # and not in profile configs such as /etc/conf.d/net.foo
# Also, you might want to make eth0 not provide net in this case so that
# dependent services will start when the vlan is active instead of the
# physical interface.
# rc_net_eth0_provide="!net"
# MAC-VLAN support
# The following configuration can be used to create a new interface 'macvlan0'
# linked to 'eth0'
#macvlan_macvlan0="eth0"
# MAC-VLAN mode (private, vepa, bridge, passtru)
#mode_macvlan0="private"
# IP address, MAC address, ... are configured as a normal interface
#config_macvlan0="192.168.20.20/24"
#mac_macvlan0="00:50:06:20:20:20"
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Bonding # Bonding
# For link bonding/trunking on 2.4 kernels, or kernels without sysfs # For link bonding/trunking on 2.4 kernels, or kernels without sysfs
@@ -616,27 +590,14 @@
#slaves_bond0="eth0 eth1 eth2" #slaves_bond0="eth0 eth1 eth2"
#config_bond0="null" # You may not want to assign an IP the the bond #config_bond0="null" # You may not want to assign an IP the the bond
# Please note, that you should generally NOT try to change the MAC addresses of # You can also configure the bond here, which must be done via sysfs on 2.6
# a bond interface yourself. If you do so, the kernel and your network switches # kernels or newer. See the kernel bonding documentation for a description of
# may not work quite right. It is permissible to set the MAC addresses of bond # these options.
# slaves BEFORE the bond comes up, but not after the bond is up (it will change
# MAC addresses of the slaves on it's own).
# You can also configure the parameters of the bond here, which must be done
# via sysfs on 2.6 kernels or newer. The description of all the options can be
# found in the kernel: /usr/src/linux-*/Documentation/networking/bonding.txt
# You will probably want the 'mode' option at the least.
# Some possible parameters: mode fail_over_mac arp_validate arp_interval
# arp_ip_target downdelay updelay lacp_rate ad_select xmit_hash_policy
# num_grat_arp num_unsol_na miimon primary primary_reselect use_carrier
# active_slave queue_id all_slaves_active resend_igmp min_links
#mode_bond0="round-robin"
#miimon_bond0="100"
#arp_ip_target_bond0="+26.0.0.0" #arp_ip_target_bond0="+26.0.0.0"
# If any of the slaves require extra configuration - for example wireless or # If any of the slaves require extra configuration - for example wireless or
# ppp devices - we need to depend function on the bonded interfaces # ppp devices - we need to depend function on the bonded interfaces
#rc_net_bond0_need="net.eth0 net.eth1" #rc_need_bond0="net.eth0 net.eth1"
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -753,7 +714,7 @@
# If the link require extra configuration - for example wireless or # If the link require extra configuration - for example wireless or
# RFC 268 bridge - we need to depend on the bridge so they get # RFC 268 bridge - we need to depend on the bridge so they get
# configured correctly. # configured correctly.
#rc_net_ppp0_need="net.nas0" #rc_need_ppp0="net.nas0"
#WARNING: if MTU of the PPP interface is less than 1500 and you use this #WARNING: if MTU of the PPP interface is less than 1500 and you use this
#machine as a router, you should add the following rule to your firewall #machine as a router, you should add the following rule to your firewall
@@ -793,8 +754,6 @@
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# MAC changer # MAC changer
# Warning: Do NOT use this on bonding interfaces! Bonding changes MACs itself.
#
# To set a specific MAC address # To set a specific MAC address
#mac_eth0="00:11:22:33:44:55" #mac_eth0="00:11:22:33:44:55"
@@ -819,7 +778,7 @@
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# TUN/TAP # TUN/TAP
# For TUN/TAP support install iproute2, openvpn or usermode-utilities # For TUN/TAP support emerge net-misc/openvpn or sys-apps/usermode-utilities
# #
# You must specify if we're a tun or tap device. Then you can give it any # You must specify if we're a tun or tap device. Then you can give it any
# name you like - such as vpn # name you like - such as vpn
@@ -830,9 +789,6 @@
#tuntap_tap0="tap" #tuntap_tap0="tap"
#config_tap0="192.168.0.1/24" #config_tap0="192.168.0.1/24"
# Use something like this to pass custom options to iproute2 during
# tunnel creation. This sets the user and group ownership of the node.
#iproute2_tun1="user foo group bar"
# For passing custom options to tunctl use something like the following. This # For passing custom options to tunctl use something like the following. This
# example sets the owner to adm # example sets the owner to adm
#tunctl_tun1="-u adm" #tunctl_tun1="-u adm"
@@ -867,13 +823,13 @@
# If any of the ports require extra configuration - for example wireless or # If any of the ports require extra configuration - for example wireless or
# ppp devices - we need to depend on them like so. # ppp devices - we need to depend on them like so.
#rc_net_br0_need="net.eth0 net.eth1" #rc_need_br0="net.eth0 net.eth1"
# Below is an example of configuring the bridge # Below is an example of configuring the bridge
# Consult "man brctl" for more details # Consult "man brctl" for more details
#brctl_br0="setfd 15 #brctl_br0="setfd 0
#sethello 2 #sethello 0
#stp on" #stp off"
# You can also configure the bridge or bridge members via sysfs on 2.6 kernels # You can also configure the bridge or bridge members via sysfs on 2.6 kernels
# or newer. See the kernel bridge documentation for a description of these # or newer. See the kernel bridge documentation for a description of these
@@ -918,7 +874,7 @@
# link_6to4="eth0" # Interface to base its addresses on # link_6to4="eth0" # Interface to base its addresses on
# config_6to4="ip6to4" # config_6to4="ip6to4"
# You may want to depend on eth0 like so # You may want to depend on eth0 like so
#rc_net_6to4_need="net.eth0" #rc_need_6to4="net.eth0"
# To ensure that eth0 is configured before 6to4. Of course, the tunnel could be # To ensure that eth0 is configured before 6to4. Of course, the tunnel could be
# any name and this also works for any configured interface. # any name and this also works for any configured interface.
# NOTE: If you're not using iproute2 then your 6to4 tunnel has to be called # NOTE: If you're not using iproute2 then your 6to4 tunnel has to be called
@@ -961,8 +917,6 @@
# /etc/iproute2/rt_tables, an example follows: # /etc/iproute2/rt_tables, an example follows:
# 2 oob # 2 oob
# 3 external # 3 external
#
# IPv6 RPDB entries are to be found in the rules6_IFVAR variables:
#rules_eth0=" #rules_eth0="
#from ZZZ.ZZZ.200.128/27 table oob priority 500 #from ZZZ.ZZZ.200.128/27 table oob priority 500
@@ -977,11 +931,6 @@
#XXX.XXX.112.0/24 dev eth1 table external scope link #XXX.XXX.112.0/24 dev eth1 table external scope link
#default via XXX.XXX.112.1 dev eth1" #default via XXX.XXX.112.1 dev eth1"
# IPv6 example:
#rules6_eth0="
#from 2001:0DB8:AAAA:BBBB::/64 table vpn priority 100
#to 2001:0DB8:AAAA:BBBB::/64 table vpn priority 150"
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# System # System
@@ -1131,17 +1080,6 @@
# #
# ${IFACE} is set to the interface being brought up/down # ${IFACE} is set to the interface being brought up/down
# ${IFVAR} is ${IFACE} converted to variable name bash allows # ${IFVAR} is ${IFACE} converted to variable name bash allows
#
# For historical and compatibility reasons, preup is actually normally called
# in the following sequence: up ; preup ; up.
# The first up causes the kernel to initialize the device, so
# that it is available for use in the preup function. However, for some
# hardware, e.g. CAN devices, some configuration is needed before trying to up
# the interface will actually work. For such hardware, the
# up_before_preup variables will allow skipping the first up call if set
# to yes.
#up_before_preup_IFVAR="NO"
#up_before_preup="NO"
#preup() { #preup() {
# # Test for link on the interface prior to bringing it up. This # # Test for link on the interface prior to bringing it up. This

View File

@@ -1,28 +1,21 @@
DIR= ${SYSCONFDIR} DIR= ${SYSCONFDIR}
SRCS= rc.conf.in rc.in rc.shutdown.in CONF= rc.conf
BIN= ${BIN-${OS}}
CONF= rc.conf ${BIN-${OS}}
CLEANFILES+= rc.conf CLEANFILES+= rc.conf
MK= ../mk MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
include Makefile.${OS}
SED_EXTRA-FreeBSD= -e 's:@TERM@:cons25:g'
BIN-FreeBSD= rc rc.shutdown rc.devd
CONF-FreeBSD= devd.conf
SED_EXTRA-Linux= -e 's:@TERM@:wsvt25:g'
BIN-Linux=
CONF-Linux=
SED_EXTRA-NetBSD= -e 's:@TERM@:wsvt25:g'
BIN-NetBSD= rc rc.shutdown
CONF-NetBSD=
SED_EXTRA= ${SED_EXTRA-${OS}}
include ${MK}/scripts.mk include ${MK}/scripts.mk
# We can't use "ifndef" here because that treats set-but-empty
# as not-set which is not what we want
MKRCSYS ?= automagicplease
ifeq ($(MKRCSYS),automagicplease)
# If the user isn't picking a default, then have the
# config go with runtime automagic detection #357247
rc.conf: SED_EXTRA += -e '/^rc_sys=""/s:^:\#:'
MKRCSYS =
endif
rc.conf: rc.conf.in rc.conf.${OS} rc.conf: rc.conf.in rc.conf.${OS}
${SED} ${SED_REPLACE} ${SED_EXTRA} $^ > $@ ${SED} ${SED_REPLACE} ${SED_EXTRA} $^ > $@

4
etc/Makefile.FreeBSD Normal file
View File

@@ -0,0 +1,4 @@
SED_EXTRA= -e 's:@TERM@:cons25:g'
SRCS+= rc.conf.in rc.in rc.shutdown.in
CONF+= devd.conf
BIN+= rc rc.shutdown rc.devd

2
etc/Makefile.Linux Normal file
View File

@@ -0,0 +1,2 @@
SED_EXTRA= -e 's:@TERM@:wsvt25:g'
SRCS+= rc.conf.in rc.in rc.shutdown.in

3
etc/Makefile.NetBSD Normal file
View File

@@ -0,0 +1,3 @@
SED_EXTRA= -e 's:@TERM@:wsvt25:g'
SRCS+= rc.conf.in rc.in rc.shutdown.in
BIN+= rc rc.shutdown

View File

@@ -4,9 +4,11 @@
# This is the subsystem type. Valid options on FreeBSD: # This is the subsystem type. Valid options on FreeBSD:
# "" - nothing special # "" - nothing special
# "jail" - FreeBSD jails # "jail" - FreeBSD jails
# If this is commented out, automatic detection will be used. # "prefix" - Prefix
# If this is commented out, automatic detection will be attempted.
# Note that automatic detection does not work in a prefix environment.
# #
# This should be set to the value representing the environment this file is # This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of. # PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys="" rc_sys="@RC_SYS_DEFAULT@"

View File

@@ -5,16 +5,20 @@
# "" - nothing special # "" - nothing special
# "lxc" - Linux Containers # "lxc" - Linux Containers
# "openvz" - Linux OpenVZ # "openvz" - Linux OpenVZ
# "prefix" - Prefix
# "uml" - Usermode Linux # "uml" - Usermode Linux
# "vserver" - Linux vserver # "vserver" - Linux vserver
# "xen0" - Xen0 Domain # "xen0" - Xen0 Domain
# "xenU" - XenU Domain # "xenU" - XenU Domain
# If this is commented out, automatic detection will be used. # If this is commented out, automatic detection will be attempted.
# Note that autodetection will not work in a prefix environment or in a
# linux container.
# #
# This should be set to the value representing the environment this file is # This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of. # PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys="" rc_sys="@RC_SYS_DEFAULT@"
# This is the number of tty's used in most of the rc-scripts (like # This is the number of tty's used in most of the rc-scripts (like
# consolefont, numlock, etc ...) # consolefont, numlock, etc ...)
rc_tty_number=12 rc_tty_number=12

View File

@@ -3,11 +3,13 @@
# This is the subsystem type. Valid options on NetBSD: # This is the subsystem type. Valid options on NetBSD:
# "" - nothing special # "" - nothing special
# "prefix" - Prefix
# "xen0" - Xen0 Domain # "xen0" - Xen0 Domain
# "xenU" - XenU Domain # "xenU" - XenU Domain
# If this is commented out, automatic detection will be used. # If this is commented out, automatic detection will be attempted.
# Note that automatic detection does not work in a prefix environment.
# #
# This should be set to the value representing the environment this file is # This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of. # PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys="" rc_sys="@RC_SYS_DEFAULT@"

View File

@@ -7,5 +7,5 @@ MK= ../mk
SED_EXTRA+= -e 's:@VARBASE@:/var:g' SED_EXTRA+= -e 's:@VARBASE@:/var:g'
include ${MK}/os.mk
include ${MK}/scripts.mk include ${MK}/scripts.mk
include Makefile.${OS}

View File

@@ -0,0 +1 @@
PKG_PREFIX?= /usr/local

View File

@@ -0,0 +1 @@
PKG_PREFIX?=/usr

View File

@@ -0,0 +1 @@
PKG_PREFIX?= /usr/pkg

1
init.d/.gitignore vendored
View File

@@ -11,7 +11,6 @@ network
root root
savecache savecache
swap swap
swapfiles
sysctl sysctl
urandom urandom
devfs devfs

View File

@@ -1,42 +1,25 @@
DIR= ${INITDIR} DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
network.in root.in savecache.in staticroute.in swap.in swapfiles.in \ network.in root.in savecache.in staticroute.in swap.in swclock.in \
swclock.in sysctl.in urandom.in ${SRCS-${OS}} sysctl.in urandom.in
BIN= ${OBJS} BIN= ${OBJS}
INSTALLAFTER= _installafter_net.lo # Build our old net foo or not
CLEANFILES+= net.lo ifeq (${MKOLDNET},yes)
TARGETS+= net.lo _OLDNET= net.lo
endif
_NET_LO= ${_OLDNET}
INSTALLAFTER= _installafter_${_NET_LO}
CLEANFILES+= ${_NET_LO}
TARGETS+= ${_NET_LO}
MK= ../mk MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
include Makefile.${OS}
NET_LO-FreeBSD= net.lo0
# Generic BSD scripts
SRCS-FreeBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are FreeBSD specific
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \
powerd.in syscons.in
NET_LO-Linux= net.lo
SRCS-Linux= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
killprocs.in modules.in mount-ro.in mtab.in numlock.in \
procfs.in sysfs.in termencoding.in
NET_LO-NetBSD= net.lo0
# Generic BSD scripts
SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are NetBSD specific
SRCS-NetBSD+= devdb.in swap-blk.in ttys.in wscons.in
%.in: %${SFX}
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@
include ${MK}/scripts.mk include ${MK}/scripts.mk
_installafter_: realinstall _installafter_: realinstall
_installafter_net.lo: realinstall _installafter_net.lo: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO-${OS}} ${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO}

13
init.d/Makefile.FreeBSD Normal file
View File

@@ -0,0 +1,13 @@
NET_LO= net.lo0
# Generic BSD scripts
SRCS+= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are FreeBSD specific
SRCS+= adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \
powerd.in syscons.in
.SUFFIXES: .BSD.in
.BSD.in:
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@

9
init.d/Makefile.Linux Normal file
View File

@@ -0,0 +1,9 @@
NET_LO= net.lo
SRCS+= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in killprocs.in \
modules.in mount-ro.in mtab.in numlock.in procfs.in sysfs.in \
termencoding.in
.SUFFIXES: .Linux.in
.Linux.in:
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@

12
init.d/Makefile.NetBSD Normal file
View File

@@ -0,0 +1,12 @@
NET_LO= net.lo0
# Generic BSD scripts
SRCS+= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are NetBSD specific
SRCS+= devdb.in swap-blk.in ttys.in wscons.in
.SUFFIXES: .BSD.in
.BSD.in:
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@

View File

@@ -22,7 +22,7 @@ depend()
[ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then [ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
need root need root
fi fi
keyword -jail keyword -jail -prefix
} }
start() start()

View File

@@ -7,11 +7,15 @@ depend()
need localmount need localmount
before logger before logger
after clock sysctl after clock sysctl
keyword -timeout keyword -prefix -timeout
}
dir_writeable()
{
mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
} }
: ${wipe_tmp:=${WIPE_TMP:-yes}} : ${wipe_tmp:=${WIPE_TMP:-yes}}
: ${log_dmesg:=${LOG_DMESG:-yes}}
cleanup_tmp_dir() cleanup_tmp_dir()
{ {
@@ -20,7 +24,7 @@ cleanup_tmp_dir()
if ! [ -d "$dir" ]; then if ! [ -d "$dir" ]; then
mkdir -p "$dir" || return $? mkdir -p "$dir" || return $?
fi fi
checkpath -W "$dir" || return 1 dir_writeable "$dir" || return 1
chmod a+rwt "$dir" 2> /dev/null chmod a+rwt "$dir" 2> /dev/null
cd "$dir" || return 1 cd "$dir" || return 1
if yesno $wipe_tmp; then if yesno $wipe_tmp; then
@@ -67,26 +71,6 @@ mkutmp()
chmod 0664 "$1" chmod 0664 "$1"
} }
migrate_to_run()
{
src="$1"
dst="$2"
if [ -L $src -a "$(readlink -f $src)" != $dst ]; then
ewarn "$src does not point to $dst."
ewarn "Setting $src to point to $dst."
rm $src
elif [ ! -L $src -a -d $src ]; then
ebegin "Migrating $src to $dst"
cp -a $src/* $dst/
rm -rf $src
eend $?
fi
# If $src doesn't exist at all, just run this
if [ ! -e $src ]; then
ln -s $dst $src
fi
}
start() start()
{ {
# Remove any added console dirs # Remove any added console dirs
@@ -94,16 +78,8 @@ start()
local logw=false runw=false extra= local logw=false runw=false extra=
# Ensure that our basic dirs exist # Ensure that our basic dirs exist
if [ "$RC_UNAME" = Linux ]; then [ "$RC_UNAME" = Linux ] && extra=/var/lib/misc # Satisfy Linux FHS
# Satisfy Linux FHS for x in /var/log /var/run /tmp $extra; do
extra=/var/lib/misc
if [ ! -d /run ]; then
extra="/var/run $extra"
fi
else
extra=/var/run
fi
for x in /var/log /tmp $extra; do
if ! [ -d $x ]; then if ! [ -d $x ]; then
if ! mkdir -p $x; then if ! mkdir -p $x; then
eend 1 "failed to create needed directory $x" eend 1 "failed to create needed directory $x"
@@ -112,12 +88,7 @@ start()
fi fi
done done
if [ "$RC_UNAME" = Linux -a -d /run ] && false; then if dir_writeable /var/run; then
migrate_to_run /var/lock /run/lock
migrate_to_run /var/run /run
fi
if checkpath -W /var/run; then
ebegin "Creating user login records" ebegin "Creating user login records"
local xtra= local xtra=
[ "$RC_UNAME" = NetBSD ] && xtra=x [ "$RC_UNAME" = NetBSD ] && xtra=x
@@ -159,7 +130,7 @@ start()
cleanup_tmp_dir "$tmp" cleanup_tmp_dir "$tmp"
done done
if checkpath -W /tmp; then if dir_writeable /tmp; then
# Make sure our X11 stuff have the correct permissions # Make sure our X11 stuff have the correct permissions
# Omit the chown as bootmisc is run before network is up # Omit the chown as bootmisc is run before network is up
# and users may be using lame LDAP auth #139411 # and users may be using lame LDAP auth #139411
@@ -171,16 +142,15 @@ start()
fi fi
fi fi
if yesno $log_dmesg; then if $logw || dir_writeable /var/log; then
if $logw || checkpath -W /var/log; then # Create an 'after-boot' dmesg log
# Create an 'after-boot' dmesg log if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then dmesg > /var/log/dmesg
dmesg > /var/log/dmesg chmod 640 /var/log/dmesg
chmod 640 /var/log/dmesg
fi
fi fi
fi fi
[ -w /etc/nologin ] && rm -f /etc/nologin
return 0 return 0
} }

View File

@@ -8,7 +8,7 @@ depend()
{ {
need localmount termencoding need localmount termencoding
after hotplug bootmisc after hotplug bootmisc
keyword -openvz -uml -vserver -xenu -lxc keyword -openvz -prefix -uml -vserver -xenu -lxc
} }
start() start()
@@ -49,12 +49,12 @@ start()
retval=1 retval=1
break break
fi fi
: $(( x += 1 )) x=$(($x + 1))
done done
eend $retval eend $retval
# Store the last font so we can use it ASAP on boot # Store the last font so we can use it ASAP on boot
if [ $retval -eq 0 ] && checkpath -W "$RC_LIBEXECDIR"; then if [ $retval -eq 0 -a -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console mkdir -p "$RC_LIBEXECDIR"/console
for font in /usr/share/consolefonts/"$consolefont".*; do for font in /usr/share/consolefonts/"$consolefont".*; do
: :

View File

@@ -10,7 +10,7 @@ depend() {
need localmount need localmount
after bootmisc after bootmisc
before net.lo0 before net.lo0
keyword -jail keyword -jail -prefix
} }
start_pre() { start_pre() {

View File

@@ -11,7 +11,7 @@ depend()
start() start()
{ {
ebegin "Building the dev database" ebegin "Bulding the dev database"
if [ /var/run/dev.db -nt /dev ]; then if [ /var/run/dev.db -nt /dev ]; then
: :
else else

View File

@@ -6,7 +6,7 @@ description="Mount system critical filesystems in /dev."
depend() { depend() {
use dev use dev
keyword -vserver keyword -prefix -vserver
} }
start() { start() {

View File

@@ -6,7 +6,7 @@ description="Configures a specific kernel dump device."
depend() { depend() {
need swap need swap
keyword -jail keyword -jail -prefix
} }
start() { start() {
@@ -19,7 +19,7 @@ start() {
} }
stop() { stop() {
ebegin "Deactivating kernel core dump device" ebegin "Deactiving kernel core dump device"
dumpon off dumpon off
eend $? eend $?
} }

View File

@@ -9,7 +9,7 @@ _IFS="
depend() depend()
{ {
use dev clock modules use dev clock modules
keyword -jail -openvz -timeout -vserver -lxc keyword -jail -openvz -prefix -timeout -vserver -lxc
} }
_abort() { _abort() {
@@ -48,13 +48,8 @@ start()
if [ -n "$fsck_passno" ]; then if [ -n "$fsck_passno" ]; then
check_extra="[passno $fsck_passno] $check_extra" check_extra="[passno $fsck_passno] $check_extra"
if [ -n "$fsck_mnt" ]; then
eerror "Only 1 of fsck_passno and fsck_mnt must be set!"
return 1
fi
fi fi
ebegin "Checking local filesystems $check_extra" ebegin "Checking local filesystems $check_extra"
# Append passno mounts
for p in $fsck_passno; do for p in $fsck_passno; do
local IFS="$_IFS" local IFS="$_IFS"
case "$p" in case "$p" in
@@ -63,21 +58,10 @@ start()
set -- "$@" $(fstabinfo --passno "$p") set -- "$@" $(fstabinfo --passno "$p")
unset IFS unset IFS
done done
# Append custom mounts
for m in $fsck_mnt ; do
local IFS="$_IFS"
set -- "$@" "$m"
unset IFS
done
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
local skiptypes x fsck_opts="$fsck_opts -C0 -T"
for x in $net_fs_list $extra_net_fs_list; do if [ -z "$fsck_passno" ]; then
skiptypes="${skiptypes}no${x},"
done
skiptypes="${skiptypes}noopts=_netdev"
fsck_opts="$fsck_opts -C0 -T -t $skiptypes"
if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
fsck_args=${fsck_args--A -p} fsck_args=${fsck_args--A -p}
if echo 2>/dev/null >/.test.$$; then if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$ rm -f /.test.$$
@@ -107,7 +91,7 @@ start()
_reboot _reboot
fi;; fi;;
8) ewend 1 "Operational error"; return 0;; 8) ewend 1 "Operational error"; return 0;;
12) ewend 1 "fsck interrupted";; 12) ewend 1 "fsck interupted";;
*) eend 2 "Filesystems couldn't be fixed";; *) eend 2 "Filesystems couldn't be fixed";;
esac esac
_abort || return 1 _abort || return 1

View File

@@ -9,7 +9,7 @@ depend()
{ {
use root use root
before devd net before devd net
keyword -jail keyword -jail -prefix
} }
_set() _set()

View File

@@ -5,38 +5,12 @@
description="Sets the hostname of the machine." description="Sets the hostname of the machine."
depend() { depend() {
need root keyword -prefix -lxc
} }
start() start()
{ {
hostname=${hostname-${HOSTNAME-localhost}} hostname=${hostname-${HOSTNAME-localhost}}
out=$hostname
short=${hostname%%.*}
if [ "$short" != "$hostname" ]; then
out="$out $short"
fi
if [ "$nisdomainname" != "" ]; then
ebegin "Setting NIS domain name to $nisdomainname"
nisdomainname $nisdomainname
eend $? "Failed to set the NIS domain name"
fi
if [ "$short" != "localhost" ]; then
out="$out localhost"
fi
if [ "$hostname" != "localhost.localdomain" ]; then
out="$out localhost.localdomain"
fi
[ -n "$aliases" ] && out="$out $aliases"
ebegin "Configuring /etc/hosts"
[ -e /etc/hosts ] && sed -i -e '/[[:space:]]*127.0.0.1[[:space:]]/d' -e '/[[:space:]]*::1[[:space:]]/d' /etc/hosts
cat <<END >> /etc/hosts
127.0.0.1 $out
::1 $out
END
chmod 0644 /etc/hosts
eend $?
[ "$RC_SYS" = "LXC" ] && return 0
ebegin "Setting hostname to $hostname" ebegin "Setting hostname to $hostname"
hostname "$hostname" hostname "$hostname"
eend $? "Failed to set the hostname" eend $? "Failed to set the hostname"

View File

@@ -28,7 +28,7 @@ depend()
else else
before * before *
fi fi
keyword -openvz -uml -vserver -xenu -lxc keyword -openvz -prefix -uml -vserver -xenu -lxc
} }
setupopts() setupopts()
@@ -85,7 +85,7 @@ start()
if [ -e /etc/adjtime ] && yesno $clock_adjfile; then if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
_hwclock --adjust $utc_cmd _hwclock --adjust $utc_cmd
: $(( retval += $? )) retval=$(($retval + $?))
fi fi
# If setting UTC, don't bother to run hwclock when first booting # If setting UTC, don't bother to run hwclock when first booting
@@ -94,12 +94,12 @@ start()
"$utc_cmd" != --utc -o \ "$utc_cmd" != --utc -o \
-n "$clock_args" ]; -n "$clock_args" ];
then then
if yesno ${clock_hctosys:-YES}; then if yesno $clock_hctosys; then
_hwclock --hctosys $utc_cmd $clock_args _hwclock --hctosys $utc_cmd $clock_args
else else
_hwclock --systz $utc_cmd $clock_args _hwclock --systz $utc_cmd $clock_args
fi fi
: $(( retval += $? )) retval=$(($retval + $?))
fi fi
eend $retval "Failed to set the system clock" eend $retval "Failed to set the system clock"
@@ -111,7 +111,7 @@ stop()
{ {
# Don't tweak the hardware clock on LiveCD halt. # Don't tweak the hardware clock on LiveCD halt.
[ -n "$CDBOOT" ] && return 0 [ -n "$CDBOOT" ] && return 0
yesno ${clock_systohc:-YES} || return 0 yesno $clock_systohc || return 0
local retval=0 errstr="" local retval=0 errstr=""
setupopts setupopts

View File

@@ -59,7 +59,7 @@ start() {
return 1 return 1
fi fi
# Use a stateful firewall # Use a statefull firewall
ipfw add check-state ipfw add check-state
ipfw add pass tcp from me to any established ipfw add pass tcp from me to any established
@@ -123,7 +123,7 @@ start() {
ipfw add deny udp from any to any 520 in ipfw add deny udp from any to any 520 in
# Noise from webbrowsing. # Noise from webbrowsing.
# The stateful filter is a bit aggressive, and will cause some # The statefull filter is a bit agressive, and will cause some
# connection teardowns to be logged. # connection teardowns to be logged.
ipfw add deny tcp from any 80,443 to any 1024-65535 in ipfw add deny tcp from any 80,443 to any 1024-65535 in

View File

@@ -8,7 +8,7 @@ depend()
{ {
need localmount termencoding need localmount termencoding
after bootmisc after bootmisc
keyword -openvz -uml -vserver -xenu -lxc keyword -openvz -prefix -uml -vserver -xenu -lxc
} }
start() start()
@@ -47,7 +47,7 @@ start()
n=1 n=1
while [ $n -le $ttyn ]; do while [ $n -le $ttyn ]; do
kbd_mode $kmode -C $ttydev$n kbd_mode $kmode -C $ttydev$n
: $(( n += 1 )) n=$(($n + 1))
done done
eend 0 eend 0
@@ -63,7 +63,7 @@ start()
fi fi
# Save the keymapping for use immediately at boot # Save the keymapping for use immediately at boot
if checkpath -W "$RC_LIBEXECDIR"; then if [ -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console mkdir -p "$RC_LIBEXECDIR"/console
dumpkeys >"$RC_LIBEXECDIR"/console/keymap dumpkeys >"$RC_LIBEXECDIR"/console/keymap
fi fi

View File

@@ -4,6 +4,11 @@
description="Kill all processes so we can unmount disks cleanly." description="Kill all processes so we can unmount disks cleanly."
depend()
{
keyword -prefix
}
start() start()
{ {
ebegin "Terminating remaining processes" ebegin "Terminating remaining processes"

View File

@@ -9,7 +9,7 @@ depend()
need fsck need fsck
use lvm modules mtab use lvm modules mtab
after lvm modules after lvm modules
keyword -jail -vserver -lxc keyword -jail -openvz -prefix -vserver -lxc
} }
start() start()
@@ -33,14 +33,9 @@ start()
stop() stop()
{ {
yesno $RC_GOINGDOWN || return 0
# We never unmount / or /dev or $RC_SVCDIR # We never unmount / or /dev or $RC_SVCDIR
local x= no_umounts_r="/|/dev|/dev/.*|${RC_SVCDIR}"
# Bug 381783 no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib|/libexec"
local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
local x= no_umounts_r="/|/dev|/dev/.*|${rc_svcdir}"
no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib(32|64)?|/libexec"
# RC_NO_UMOUNTS is an env var that can be set by plugins # RC_NO_UMOUNTS is an env var that can be set by plugins
local IFS="$IFS:" local IFS="$IFS:"
for x in $no_umounts $RC_NO_UMOUNTS; do for x in $no_umounts $RC_NO_UMOUNTS; do
@@ -48,7 +43,7 @@ stop()
done done
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*|/usr" no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*"
fi fi
no_umounts_r="^($no_umounts_r)$" no_umounts_r="^($no_umounts_r)$"
@@ -74,7 +69,7 @@ stop()
done done
[ -n "$fs" ] && fs="^($fs)$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount umount --skip-point-regex "$no_umounts_r" \ do_unmount umount --skip-point-regex "$no_umounts_r" \
"${fs:+--skip-fstype-regex}" $fs --nonetdev ${fs:+--skip-fstype-regex} $fs --nonetdev
eoutdent eoutdent
return 0 return 0

View File

@@ -7,7 +7,7 @@ extra_commands="restore"
depend() depend()
{ {
need localmount need localmount
keyword -jail keyword -jail -prefix
} }
restore() restore()
@@ -21,7 +21,7 @@ restore()
mixer -f "$mixer" \ mixer -f "$mixer" \
$(cat "/var/db/${mixer#/dev/}-state") >/dev/null $(cat "/var/db/${mixer#/dev/}-state") >/dev/null
veend $? veend $?
: $(( retval += $? )) : $((retval += $?))
fi fi
done done
} }
@@ -40,7 +40,7 @@ stop()
vebegin "$mixer" vebegin "$mixer"
mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state
veend $? veend $?
: $(( retval += $? )) : $((retval += $?))
done done
eoutdent eoutdent
eend $retval eend $retval

View File

@@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules."
depend() depend()
{ {
use isapnp use isapnp
keyword -openvz -vserver -lxc keyword -openvz -prefix -vserver -lxc
} }
start() start()
@@ -57,7 +57,7 @@ start()
[ -z "$args" ] && eval args=\$module_${aa}_args [ -z "$args" ] && eval args=\$module_${aa}_args
[ -z "$args" ] && eval args=\$module_${xx}_args [ -z "$args" ] && eval args=\$module_${xx}_args
eval modprobe -q "$mpargs" "$x" "$args" eval modprobe -q "$mpargs" "$x" "$args"
eend $? "Failed to load $x" && : $(( cnt += 1 )) eend $? "Failed to load $x" && cnt=$(($cnt + 1))
done done
einfo "Autoloaded $cnt module(s)" einfo "Autoloaded $cnt module(s)"
} }

View File

@@ -7,7 +7,7 @@ description="Re-mount filesytems read-only for a clean reboot."
depend() depend()
{ {
need killprocs savecache need killprocs savecache
keyword -openvz -vserver -lxc keyword -prefix -openvz -vserver -lxc
} }
start() start()
@@ -19,12 +19,8 @@ start()
# We need the do_unmount function # We need the do_unmount function
. "$RC_LIBEXECDIR"/sh/rc-mount.sh . "$RC_LIBEXECDIR"/sh/rc-mount.sh
eindent eindent
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs=
# Bug 381783 m="$m|/bin|/sbin|/lib|/libexec"
local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs=
m="$m|/bin|/sbin|/lib(32|64)?|/libexec"
# RC_NO_UMOUNTS is an env var that can be set by plugins # RC_NO_UMOUNTS is an env var that can be set by plugins
local IFS="$IFS:" local IFS="$IFS:"
for x in $no_umounts $RC_NO_UMOUNTS; do for x in $no_umounts $RC_NO_UMOUNTS; do
@@ -38,7 +34,7 @@ start()
[ -n "$fs" ] && fs="^($fs)$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount "umount -r" \ do_unmount "umount -r" \
--skip-point-regex "$m" \ --skip-point-regex "$m" \
"${fs:+--skip-fstype-regex}" $fs --nonetdev ${fs:+--skip-fstype-regex} $fs --nonetdev
eoutdent eoutdent
eend $? eend $?
} }

View File

@@ -16,7 +16,7 @@ depend()
{ {
need localmount need localmount
after bootmisc after bootmisc
keyword -jail keyword -jail -prefix
} }
start() start()
@@ -54,7 +54,7 @@ start()
local ttyv= local ttyv=
for ttyv in /dev/ttyv*; do for ttyv in /dev/ttyv*; do
vidcontrol < "$ttyv" -m on vidcontrol < "$ttyv" -m on
: $(( retval += $? )) : $((retval+= $?))
done done
fi fi

View File

@@ -7,11 +7,12 @@ description="Update /etc/mtab to match what the kernel knows about"
depend() depend()
{ {
need root need root
keyword -prefix
} }
start() start()
{ {
if [ -L /etc/mtab ] if [ -l /etc/mtab ]
then then
einfo "Skipping mtab update (mtab is a symbolic link)" einfo "Skipping mtab update (mtab is a symbolic link)"
return 0 return 0

View File

@@ -19,18 +19,13 @@ depend()
local IFVAR=$(shell_var "${IFACE}") local IFVAR=$(shell_var "${IFACE}")
need localmount need localmount
if [ "$RC_UNAME" = Linux ]; then
need sysfs
fi
after bootmisc after bootmisc
keyword -jail -vserver provide net
keyword -jail -prefix -vserver
case "${IFACE}" in case "${IFACE}" in
lo|lo0) provide lo;; lo|lo0);;
*) *) after net.lo net.lo0;;
after net.lo net.lo0 dbus
provide net
;;
esac esac
if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
@@ -42,23 +37,11 @@ depend()
eval prov=\$rc_${dep}_${IFVAR} eval prov=\$rc_${dep}_${IFVAR}
if [ -n "${prov}" ]; then if [ -n "${prov}" ]; then
${dep} ${prov} ${dep} ${prov}
ewarn "rc_${dep}_${IFVAR} is deprecated."
ewarn "Please use rc_net_${IFVAR}_${dep} instead."
fi fi
done done
} }
# Support bash arrays - sigh # Support bash arrays - sigh
_array_helper()
{
local _a=
eval _a=\$$1
_a=$(echo "${_a}" | sed -e 's:^[[:space:]]*::' -e 's:[[:space:]]*$::' -e '/^$/d' -e 's:[[:space:]]\{1,\}: :g')
[ -n "${_a}" ] && printf "%s\n" "${_a}"
}
_get_array() _get_array()
{ {
local _a= local _a=
@@ -77,7 +60,10 @@ _get_array()
esac esac
fi fi
_array_helper $1 eval _a=\$$1
printf "%s" "${_a}"
printf "\n"
[ -n "${_a}" ]
} }
# Flatten bash arrays to simple strings # Flatten bash arrays to simple strings
@@ -98,7 +84,10 @@ _flatten_array()
esac esac
fi fi
_array_helper $1 eval _a=\$$1
printf "%s" "${_a}"
printf "\n"
[ -n "${_a}" ]
} }
_wait_for_carrier() _wait_for_carrier()
@@ -122,7 +111,7 @@ _wait_for_carrier()
eend 0 eend 0
return 0 return 0
fi fi
: $(( timeout -= 1 )) timeout=$((${timeout} - 1))
[ "${efunc}" = "einfon" ] && printf "." [ "${efunc}" = "einfon" ] && printf "."
done done
@@ -151,9 +140,9 @@ _netmask2cidr()
local i= len= local i= len=
local IFS=. local IFS=.
for i in $1; do for i in $1; do
while [ ${i} -ne 0 ]; do while [ ${i} != "0" ]; do
: $(( len += i % 2 )) len=$((${len} + ${i} % 2))
: $(( i >>= 1 )) i=$((${i} >> 1))
done done
done done
@@ -176,36 +165,6 @@ _configure_variables()
done done
} }
_which()
{
local i OIFS
# Empty
[ -z "$1" ] && return
# check paths
OIFS="$IFS"
IFS=:
for i in $PATH ; do
[ -x $i/$1 ] && echo $i/$1 && break
done
IFS=$OIFS
}
# Like _which, but also consider shell builtins, and multiple alternatives
_program_available()
{
[ -z "$1" ] && return 0
local x=
for x; do
case "${x}" in
/*) [ -x "${x}" ] && break;;
*) type "${x}" >/dev/null 2>&1 && break;;
esac
unset x
done
[ -n "${x}" ] && echo $x && return 0
return 1
}
_show_address() _show_address()
{ {
einfo "received address $(_get_inet_address "${IFACE}")" einfo "received address $(_get_inet_address "${IFACE}")"
@@ -314,7 +273,7 @@ _gen_module_list()
echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}" echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"
echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}" echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"
echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}" echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"
: $(( i += 1 )) i=$((${i} + 1))
done done
echo "module_${i}=" >> "${MODULESLIST}" echo "module_${i}=" >> "${MODULESLIST}"
) )
@@ -341,17 +300,18 @@ _load_modules()
local i=-1 x= mod= f= provides= local i=-1 x= mod= f= provides=
while true; do while true; do
: $(( i += 1 )) i=$((${i} + 1))
eval mod=\$module_${i} eval mod=\$module_${i}
[ -z "${mod}" ] && break [ -z "${mod}" ] && break
[ -e "${MODULESDIR}/${mod}.sh" ] || continue [ -e "${MODULESDIR}/${mod}.sh" ] || continue
eval set -- \$module_${i}_program eval set -- \$module_${i}_program
if [ -n "$1" ]; then if [ -n "$1" ]; then
if ! _program_available "$@" >/dev/null; then x=
vewarn "Skipping module $mod due to missing program: $@" for x; do
continue [ -x "${x}" ] && break
fi done
[ -x "${x}" ] || continue
fi fi
if ${starting}; then if ${starting}; then
eval set -- \$module_${i}_program_start eval set -- \$module_${i}_program_start
@@ -359,10 +319,15 @@ _load_modules()
eval set -- \$module_${i}_program_stop eval set -- \$module_${i}_program_stop
fi fi
if [ -n "$1" ]; then if [ -n "$1" ]; then
if ! _program_available "$@" >/dev/null; then x=
vewarn "Skipping module $mod due to missing program: $@" for x; do
continue case "${x}" in
fi /*) [ -x "${x}" ] && break;;
*) type "${x}" >/dev/null 2>&1 && break;;
esac
unset x
done
[ -n "${x}" ] || continue
fi fi
eval provides=\$module_${i}_provide eval provides=\$module_${i}_provide
@@ -438,18 +403,16 @@ _load_config()
set -- ${config} set -- ${config}
# We should support a space separated array for cidr configs # We should support a space separated array for cidr configs
# But only as long as they do not contain other parameters for the address
if [ $# = 1 ]; then if [ $# = 1 ]; then
unset IFS unset IFS
set -- ${config} set -- ${config}
# Of course, we may have a single address added old style. # Of course, we may have a single address added old style.
# If the NEXT argument is a v4 or v6 address, it's the next config. case "$2" in
# Otherwise, it's arguments to the first config... netmask|broadcast|brd|brd+|peer|pointopoint)
if [ "${2#*.*}" = "${2}" -a "${2#*:*}" = "${2}" ]; then local IFS="$__IFS"
# Not an IPv4/IPv6 set -- ${config}
local IFS="$__IFS" ;;
set -- ${config} esac
fi
fi fi
# Ensure that loopback has the correct address # Ensure that loopback has the correct address
@@ -471,7 +434,7 @@ _load_config()
# so modules can influence it # so modules can influence it
for cmd; do for cmd; do
eval config_${config_index}="'${cmd}'" eval config_${config_index}="'${cmd}'"
: $(( config_index += 1 )) config_index=$((${config_index} + 1))
done done
# Terminate the list # Terminate the list
eval config_${config_index}= eval config_${config_index}=
@@ -479,7 +442,7 @@ _load_config()
config_index=0 config_index=0
for cmd in ${fallback}; do for cmd in ${fallback}; do
eval fallback_${config_index}="'${cmd}'" eval fallback_${config_index}="'${cmd}'"
: $(( config_index += 1 )) config_index=$((${config_index} + 1))
done done
# Terminate the list # Terminate the list
eval fallback_${config_index}= eval fallback_${config_index}=
@@ -521,9 +484,7 @@ start()
{ {
local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module= local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=
local IFVAR=$(shell_var "${IFACE}") cmd= our_metric= local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
local metric=0 _up_before_preup local metric=0
eval _up_before_preup="\$up_before_preup_${IFVAR}"
[ -z "${_up_before_preup}" ] && _up_before_preup=$up_before_preup
einfo "Bringing up interface ${IFACE}" einfo "Bringing up interface ${IFACE}"
eindent eindent
@@ -537,7 +498,7 @@ start()
# available in preup and afterwards incase the user inadvertently # available in preup and afterwards incase the user inadvertently
# brings it down # brings it down
if [ "$(command -v preup)" = "preup" ]; then if [ "$(command -v preup)" = "preup" ]; then
yesno "${_up_before_preup:-yes}" && _up 2>/dev/null _up 2>/dev/null
ebegin "Running preup" ebegin "Running preup"
eindent eindent
preup || return 1 preup || return 1
@@ -576,7 +537,7 @@ start()
if [ -n "${our_metric}" ]; then if [ -n "${our_metric}" ]; then
metric=${our_metric} metric=${our_metric}
elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
: $(( metric += $(_ifindex) )) metric=$((${metric} + $(_ifindex)))
fi fi
while true; do while true; do
@@ -616,11 +577,11 @@ start()
eindent eindent
eval config_${config_index}=\$config eval config_${config_index}=\$config
unset fallback_${config_index} unset fallback_${config_index}
: $(( config_index -= 1 )) config_index=$((${config_index} - 1))
fi fi
fi fi
eoutdent eoutdent
: $(( config_index += 1 )) config_index=$((${config_index} + 1))
done done
if ! ${oneworked}; then if ! ${oneworked}; then

View File

@@ -35,7 +35,7 @@ depend()
need net $pmap need net $pmap
use afc-client amd autofs openvpn use afc-client amd autofs openvpn
use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd
keyword -jail -vserver keyword -jail -prefix -vserver
} }
start() start()

View File

@@ -13,7 +13,7 @@ depend()
need localmount need localmount
after bootmisc after bootmisc
provide net provide net
keyword -jail -vserver keyword -jail -prefix -vserver
} }
uniqify() uniqify()
@@ -219,12 +219,6 @@ start()
eend $? eend $?
fi fi
ewarn
ewarn "The $RC_SVCNAME script is deprecated and will be"
ewarn "removed in the future."
ewarn "Please use the net.* scripts to manage your network interfaces."
ewarn
einfo "Starting network" einfo "Starting network"
routeflush routeflush
if [ "$RC_UNAME" = "Linux" ]; then if [ "$RC_UNAME" = "Linux" ]; then
@@ -287,7 +281,7 @@ start()
tentative || break tentative || break
[ $r = 5 ] && vebegin "Waiting for tentative addresses" [ $r = 5 ] && vebegin "Waiting for tentative addresses"
sleep 1 sleep 1
: $(( r -= 1 )) r=$(($r - 1))
done done
if [ $r != 5 ]; then if [ $r != 5 ]; then
[ $r != 0 ] [ $r != 0 ]

View File

@@ -7,6 +7,7 @@ required_files="/etc/newsyslog.conf"
depend() depend()
{ {
need localmount need localmount
keyword -prefix
} }
start() start()

View File

@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend() depend()
{ {
need localmount need localmount
keyword -openvz -vserver -lxc keyword -openvz -prefix -vserver -lxc
} }
_setleds() _setleds()
@@ -21,7 +21,7 @@ _setleds()
while [ $i -le $ttyn ]; do while [ $i -le $ttyn ]; do
setleds -D "$1"num < $dev$i || retval=1 setleds -D "$1"num < $dev$i || retval=1
: $(( i += 1 )) i=$(($i + 1))
done done
return $retval return $retval

View File

@@ -11,7 +11,7 @@ extra_started_commands="reload"
depend() { depend() {
need localmount need localmount
keyword -jail keyword -jail -prefix
} }
start() start()

View File

@@ -12,7 +12,7 @@ depend()
need localmount need localmount
use logger use logger
after bootmisc after bootmisc
keyword -jail keyword -jail -prefix
} }
start_pre() start_pre()

View File

@@ -8,7 +8,7 @@ depend()
{ {
use modules devfs use modules devfs
need localmount need localmount
keyword -openvz -vserver -lxc keyword -openvz -prefix -vserver -lxc
} }
start() start()
@@ -20,29 +20,6 @@ start()
[ -e /proc/filesystems ] || return 0 [ -e /proc/filesystems ] || return 0
# Setup Kernel Support for miscellaneous Binary Formats
if [ -d /proc/sys/fs/binfmt_misc -a ! -e /proc/sys/fs/binfmt_misc/register ]; 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
if eend $? ; then
local fmts
ebegin "Loading custom binary format handlers"
fmts=$(grep -hsv -e '^[#;]' -e '^[[:space:]]*$' \
/run/binfmt.d/*.conf \
@SYSCONFDIR@/binfmt.d/*.conf \
""/usr/lib/binfmt.d/*.conf)
if [ -n "${fmts}" ]; then
echo "${fmts}" > /proc/sys/fs/binfmt_misc/register
fi
eend $?
fi
fi
fi
[ "$RC_SYS" = "OPENVZ" ] && return 0
# Check what USB fs the kernel support. Currently # Check what USB fs the kernel support. Currently
# 2.5+ kernels, and later 2.4 kernels have 'usbfs', # 2.5+ kernels, and later 2.4 kernels have 'usbfs',
# while older kernels have 'usbdevfs'. # while older kernels have 'usbdevfs'.
@@ -60,6 +37,27 @@ start()
fi fi
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 NFS 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 SELinux # Setup Kernel Support for SELinux
if [ -d /selinux ] && ! mountinfo -q /selinux; then if [ -d /selinux ] && ! mountinfo -q /selinux; then
if grep -qs selinuxfs /proc/filesystems; then if grep -qs selinuxfs /proc/filesystems; then

View File

@@ -7,6 +7,7 @@ depend()
need localmount net need localmount net
after * after *
before local before local
keyword -prefix
} }
start() start()
@@ -32,7 +33,7 @@ start()
# Good to go! # Good to go!
"$svc" start && started="$started $svc" "$svc" start && started="$started $svc"
: $(( retval += $? )) : $((retval += $?))
done done
service_set_value started "$started" service_set_value started "$started"
eend $retval "Some local rc services failed to start" eend $retval "Some local rc services failed to start"
@@ -45,7 +46,7 @@ stop()
local svc= retval=0 local svc= retval=0
for svc in $(rcorder $(service_get_value started) 2>/dev/null | sort -r); do for svc in $(rcorder $(service_get_value started) 2>/dev/null | sort -r); do
"$svc" stop "$svc" stop
: $(( retval += $? )) : $((retval += $?))
done done
eend $retval "Some local rc services failed to stop" eend $retval "Some local rc services failed to stop"
return 0 return 0

View File

@@ -7,47 +7,26 @@ description="Mount the root fs read/write"
depend() depend()
{ {
need fsck need fsck
keyword -jail -openvz -vserver -lxc keyword -jail -openvz -prefix -vserver -lxc
} }
start() start()
{ {
case ",$(fstabinfo -o /)," in case ",$(fstabinfo -o /)," in
*,ro,*) *,ro,*) return 0;;
;;
*)
# Check if the rootfs isn't already writable.
if checkpath -W /; then
rm -f /fastboot /forcefsck
else
ebegin "Remounting root filesystem read/write"
case "$RC_UNAME" in
Linux)
mount -n -o remount,rw /
;;
*)
mount -u -o rw /
;;
esac
eend $? "Root filesystem could not be mounted read/write"
if [ $? -eq 0 ]; then
rm -f /fastboot /forcefsck
fi
fi
;;
esac esac
ebegin "Remounting filesystems" if echo 2>/dev/null >/.test.$$; then
local mountpoint rm -f /.test.$$ /fastboot /forcefsck
for mountpoint in $(fstabinfo); do return 0
case "${mountpoint}" in fi
/)
;; ebegin "Remounting root filesystem read/write"
/*) case "$RC_UNAME" in
mountinfo -q "${mountpoint}" && \ Linux) mount -n -o remount,rw /;;
fstabinfo --remount "${mountpoint}" *) mount -u -o rw /;;
;; esac
esac if eend $? "Root filesystem could not be mounted read/write"; then
done rm -f /fastboot /forcefsck
eend 0 fi
} }

View File

@@ -7,7 +7,7 @@ description="Saves a kernel dump."
depend() depend()
{ {
need localmount need localmount
keyword -jail keyword -jail -prefix
} }
start() start()

View File

@@ -12,7 +12,7 @@ depend()
{ {
provide net provide net
use network use network
keyword -jail -vserver keyword -jail -prefix -vserver
} }
pre_flight_checks() pre_flight_checks()
@@ -93,11 +93,6 @@ do_routes()
start() start()
{ {
ewarn
ewarn "The $RC_SVCNAME script is deprecated and will be"
ewarn "removed in the future."
ewarn "Please use the net.* scripts to manage your network interfaces."
ewarn
do_routes "Adding" "add" do_routes "Adding" "add"
} }

View File

@@ -5,7 +5,7 @@
depend() depend()
{ {
before fsck before fsck
keyword -jail keyword -jail -prefix
} }
start() start()

View File

@@ -4,15 +4,14 @@
depend() depend()
{ {
before localmount need localmount
keyword -jail -openvz -vserver -lxc keyword -jail -openvz -prefix -vserver -lxc
} }
start() start()
{ {
ebegin "Activating swap devices" ebegin "Activating swap devices"
case "$RC_UNAME" in case "$RC_UNAME" in
Linux) swapon -a -e >/dev/null;;
NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;; NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;;
*) swapon -a >/dev/null;; *) swapon -a >/dev/null;;
esac esac
@@ -24,7 +23,7 @@ stop()
ebegin "Deactivating swap devices" ebegin "Deactivating swap devices"
# Try to unmount all tmpfs filesystems not in use, else a deadlock may # Try to unmount all tmpfs filesystems not in use, else a deadlock may
# occur. As $RC_SVCDIR may also be tmpfs we cd to it to lock it # occure. As $RC_SVCDIR may also be tmpfs we cd to it to lock it
cd "$RC_SVCDIR" cd "$RC_SVCDIR"
umount -a -t tmpfs 2>/dev/null umount -a -t tmpfs 2>/dev/null

View File

@@ -1,45 +0,0 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
depend()
{
need localmount
keyword -jail -openvz -prefix -vserver -lxc
}
start()
{
ebegin "Activating additional swap space"
case "$RC_UNAME" in
NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;;
*) swapon -a >/dev/null;;
esac
eend 0 # If swapon has nothing todo it errors, so always return 0
}
stop()
{
ebegin "Deactivating additional swap space"
# Try to unmount all tmpfs filesystems not in use, else a deadlock may
# occur. As $RC_SVCDIR may also be tmpfs we cd to it to lock it
# fixme: Do we need this here since we are only unmounting swap files
# and loopback swap?
cd "$RC_SVCDIR"
umount -a -t tmpfs 2>/dev/null
case "$RC_UNAME" in
Linux)
while read filename type rest; do
case "$type" in
file) swapoff $filename >/dev/null;;
esac
case "$filename" in
/dev/loop*) swapoff $filename >/dev/null;;
esac
done < /proc/swaps
;;
esac
eend 0
}

View File

@@ -8,7 +8,7 @@ depend()
{ {
before * before *
provide clock provide clock
keyword -openvz -uml -vserver -xenu -lxc keyword -openvz -prefix -uml -vserver -xenu -lxc
} }
# swclock is an OpenRC built in # swclock is an OpenRC built in

View File

@@ -4,7 +4,7 @@
depend() { depend() {
need localmount need localmount
keyword -jail keyword -jail -prefix
} }
start() { start() {

View File

@@ -5,6 +5,7 @@
depend() depend()
{ {
before bootmisc logger before bootmisc logger
keyword -prefix
} }
start() start()
@@ -13,7 +14,7 @@ start()
local retval=0 var= comments= conf= local retval=0 var= comments= conf=
ebegin "Configuring kernel parameters" ebegin "Configuring kernel parameters"
eindent eindent
for conf in @SYSCONFDIR@/sysctl.conf @SYSCONFDIR@/sysctl.d/*.conf; do for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do
if [ -r "$conf" ]; then if [ -r "$conf" ]; then
vebegin "applying $conf" vebegin "applying $conf"
while read var comments; do while read var comments; do

View File

@@ -5,7 +5,7 @@
depend() depend()
{ {
before bootmisc logger before bootmisc logger
keyword -lxc -vserver keyword -prefix -vserver
} }
start() start()
@@ -15,20 +15,12 @@ start()
ebegin "Configuring kernel parameters" ebegin "Configuring kernel parameters"
eindent eindent
# default sysctl System V max shared memory to 1/4 of RAM: for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do
mem_bytes=`awk '/MemTotal:/ { printf "%0.f",$2 * 1024}' /proc/meminfo`
mem_max=`expr $mem_bytes / 4`
page_size=`getconf PAGE_SIZE`
shmall=`expr $mem_bytes / $page_size`
sysctl kernel.shmmax=$mem_max > /dev/null
sysctl kernel.shmall=$shmall > /dev/null
for conf in @SYSCONFDIR@/sysctl.conf @SYSCONFDIR@/sysctl.d/*.conf; do
if [ -r "$conf" ]; then if [ -r "$conf" ]; then
vebegin "applying $conf" vebegin "applying $conf"
if ! err=$(sysctl -p "$conf" 2>&1 >/dev/null) ; then if ! err=$(sysctl -q -p "$conf" 2>&1) ; then
errs="${errs} ${err}" errs="${errs} ${err}"
sysctl -e -p "${conf}" >/dev/null sysctl -q -e -p "${conf}"
fi fi
veend $? || retval=1 veend $? || retval=1
fi fi

View File

@@ -6,7 +6,7 @@ description="Mount the sys filesystem."
depend() depend()
{ {
keyword -vserver keyword -prefix -vserver
} }
mount_sys() mount_sys()
@@ -50,47 +50,6 @@ mount_misc()
eend $? eend $?
fi fi
fi fi
# Setup Kernel Support for configfs
if [ -d /sys/kernel/config ] && ! mountinfo -q /sys/kernel/config; then
if grep -qs configfs /proc/filesystems; then
ebegin "Mounting config filesystem"
mount -n -t configfs -o nodev,noexec,nosuid \
configfs /sys/kernel/config
eend $?
fi
fi
# set up kernel support for cgroups
if [ -d /sys/fs/cgroup ] && ! mountinfo -q /sys/fs/cgroup; then
if grep -qs cgroup /proc/filesystems; then
ebegin "Mounting cgroup filesystem"
local opts="nodev,noexec,nosuid,mode=755,size=${rc_cgroupsize:-10m}"
mount -n -t tmpfs -o ${opts} cgroup_root /sys/fs/cgroup
eend $?
fi
fi
}
mount_cgroups()
{
yesno ${rc_cgroups:-YES} && [ -e /proc/cgroups ] && \
mountinfo -q /sys/fs/cgroup || return 0
local agent="@LIBEXECDIR@/sh/cgroup-release-agent.sh"
mkdir /sys/fs/cgroup/openrc
mount -n -t cgroup \
-o none,nodev,noexec,nosuid,name=openrc,release_agent="$agent" \
openrc /sys/fs/cgroup/openrc
echo 1 > /sys/fs/cgroup/openrc/notify_on_release
while read name hier groups enabled rest; do
case "${enabled}" in
1) mkdir /sys/fs/cgroup/${name}
mount -n -t cgroup -o nodev,noexec,nosuid,${name} \
${name} /sys/fs/cgroup/${name}
;;
esac
done < /proc/cgroups
} }
start() start()
@@ -100,11 +59,6 @@ start()
retval=$? retval=$?
if [ $retval -eq 0 ]; then if [ $retval -eq 0 ]; then
mount_misc mount_misc
retval=$?
fi
if [ $retval -eq 0 ]; then
mount_cgroups
retval=$?
fi fi
return $retval return $retval
} }

View File

@@ -16,4 +16,5 @@ depend()
use net newsyslog use net newsyslog
need localmount need localmount
after bootmisc after bootmisc
keyword -prefix
} }

View File

@@ -9,8 +9,8 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend() depend()
{ {
keyword -lxc -openvz -uml -vserver -xenu keyword -openvz -prefix -uml -vserver -xenu
use root need root
after bootmisc after bootmisc
} }
@@ -31,11 +31,11 @@ start()
n=1 n=1
while [ ${n} -le "$ttyn" ]; do while [ ${n} -le "$ttyn" ]; do
printf "\033%s" "$termencoding" >$ttydev$n printf "\033%s" "$termencoding" >$ttydev$n
: $(( n += 1 )) n=$(($n + 1))
done done
# Save the encoding for use immediately at boot # Save the encoding for use immediately at boot
if checkpath -W "$RC_LIBEXECDIR"; then if [ -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console mkdir -p "$RC_LIBEXECDIR"/console
if yesno ${unicode:-${UNICODE}}; then if yesno ${unicode:-${UNICODE}}; then
echo "" > "$RC_LIBEXECDIR"/console/unicode echo "" > "$RC_LIBEXECDIR"/console/unicode

View File

@@ -5,6 +5,7 @@
depend() depend()
{ {
after fsck after fsck
keyword -prefix
} }
start() start()

View File

@@ -2,13 +2,13 @@
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # Released under the 2-clause BSD license.
: ${urandom_seed:=${URANDOM_SEED:-/var/lib/misc/random-seed}} : ${urandom_seed:=${URANDOM_SEED:-/var/run/random-seed}}
description="Initializes the random number generator." description="Initializes the random number generator."
depend() depend()
{ {
need localmount need localmount
keyword -jail -openvz keyword -jail -openvz -prefix
} }
save_seed() save_seed()
@@ -16,7 +16,7 @@ save_seed()
local psz=1 local psz=1
if [ -e /proc/sys/kernel/random/poolsize ]; then if [ -e /proc/sys/kernel/random/poolsize ]; then
: $(( psz = $(cat /proc/sys/kernel/random/poolsize) / 4096 )) psz=$(($(cat /proc/sys/kernel/random/poolsize) / 4096))
fi fi
( # sub shell to prevent umask pollution ( # sub shell to prevent umask pollution

View File

@@ -5,6 +5,7 @@
depend() depend()
{ {
need localmount need localmount
keyword -prefix
} }
start() start()

View File

@@ -27,7 +27,7 @@ install:
for man in ${MAN3}; do \ for man in ${MAN3}; do \
${INSTALL} -m ${MANMODE} "$$man" ${DESTDIR}/${MANDIR}/man3 || exit $$?; \ ${INSTALL} -m ${MANMODE} "$$man" ${DESTDIR}/${MANDIR}/man3 || exit $$?; \
${MAKE_LINKS} \ ${MAKE_LINKS} \
done done
${INSTALL} -d ${DESTDIR}/${MANDIR}/man8 ${INSTALL} -d ${DESTDIR}/${MANDIR}/man8
for man in ${MAN8}; do \ for man in ${MAN8}; do \
${INSTALL} -m ${MANMODE} "$$man" ${DESTDIR}/${MANDIR}/man8 || exit $$?; \ ${INSTALL} -m ${MANMODE} "$$man" ${DESTDIR}/${MANDIR}/man8 || exit $$?; \

View File

@@ -115,7 +115,7 @@ to true.
These functions are designed to output a whole line, so they also These functions are designed to output a whole line, so they also
append a newline to the string. To stop this behaviour, you can use the append a newline to the string. To stop this behaviour, you can use the
functions functions
.Fn einfon , .Fn einfon ,
.Fn ewarnn , .Fn ewarnn ,
.Fn eerrorn , .Fn eerrorn ,
.Fn einfovn , .Fn einfovn ,
@@ -149,7 +149,7 @@ does the same as
.Fn eend .Fn eend
but prints but prints
.Fa msg .Fa msg
instead of ok or !! in the color instead of ok or !! in the color
.Fa color .Fa color
at the column at the column
.Fa col . .Fa col .

View File

@@ -26,7 +26,7 @@
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
.Nm rc-service .Nm rc-service
.Nd locate and run an OpenRC service with the given arguments .Nd locate and run an OpenRC service with the given arguments
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl i , -ifexists .Op Fl i , -ifexists
@@ -41,7 +41,7 @@
.Fl r , -resolve .Fl r , -resolve
.Ar service .Ar service
.Sh DESCRIPTION .Sh DESCRIPTION
Service scripts could be in different places on different systems. Service scripts could be in different places on different systems.
.Nm .Nm
locates the specified service and runs it with the given arguments. locates the specified service and runs it with the given arguments.
If If

View File

@@ -33,8 +33,8 @@
.Op Ar runlevel .Op Ar runlevel
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
gathers and displays information about the status of services gathers and displays information about the status of services
in different runlevels. The default behavior is to show information in different runlevels. The default behavior is to show information
about the current runlevel and any unassigned services that are not stopped, about the current runlevel and any unassigned services that are not stopped,
but any runlevel can be quickly examined. but any runlevel can be quickly examined.
.Pp .Pp

View File

@@ -26,7 +26,7 @@
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
.Nm rc-update .Nm rc-update
.Nd add and remove services to and from a runlevel .Nd add and remove services to and from a runlevel
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl s , -stack .Op Fl s , -stack
@@ -44,7 +44,7 @@
.Ar show .Ar show
.Op Ar runlevel ... .Op Ar runlevel ...
.Sh DESCRIPTION .Sh DESCRIPTION
OpenRC uses named runlevels. Rather than editing some obscure OpenRC uses named runlevels. Rather than editing some obscure
file or managing a directory of symlinks, file or managing a directory of symlinks,
.Nm .Nm
exists to quickly add or delete services to and from from different runlevels. exists to quickly add or delete services to and from from different runlevels.

View File

@@ -32,7 +32,7 @@
.Sh LIBRARY .Sh LIBRARY
Run Command library (librc, -lrc) Run Command library (librc, -lrc)
.Sh SYNOPSIS .Sh SYNOPSIS
.In rc.h .In rc.h
.Ft bool Fn rc_deptree_update void .Ft bool Fn rc_deptree_update void
.Ft bool Fn rc_deptree_update_needed void .Ft bool Fn rc_deptree_update_needed void
.Ft RC_DEPTREE Fn rc_deptree_load void .Ft RC_DEPTREE Fn rc_deptree_load void
@@ -77,7 +77,7 @@ loads the deptree and returns a pointer to it which needs to be freed by
when done. when done.
.Pp .Pp
.Fn rc_deptree_depend , .Fn rc_deptree_depend ,
.Fn rc_deptree_depends .Fn rc_deptree_depends
and and
.Fn rc_deptree_order .Fn rc_deptree_order
return a list of services from the return a list of services from the

View File

@@ -31,7 +31,7 @@
.Sh LIBRARY .Sh LIBRARY
Run Command library (librc, -lrc) Run Command library (librc, -lrc)
.Sh SYNOPSIS .Sh SYNOPSIS
.In rc.h .In rc.h
.Ft "char *" Fn rc_runlevel_get void .Ft "char *" Fn rc_runlevel_get void
.Ft bool Fn rc_runlevel_exists .Ft bool Fn rc_runlevel_exists
.Ft "RC_STRINGLIST *" Fn rc_runlevel_list void .Ft "RC_STRINGLIST *" Fn rc_runlevel_list void

View File

@@ -37,7 +37,7 @@
.Sh LIBRARY .Sh LIBRARY
Run Command library (librc, -lrc) Run Command library (librc, -lrc)
.Sh SYNOPSIS .Sh SYNOPSIS
.In rc.h .In rc.h
.Ft bool Fn rc_service_add "const char *runlevel" "const char *service" .Ft bool Fn rc_service_add "const char *runlevel" "const char *service"
.Ft bool Fn rc_service_delete "const char *runlevel" "const char *service" .Ft bool Fn rc_service_delete "const char *runlevel" "const char *service"
.Ft bool Fo rc_service_daemon_set .Ft bool Fo rc_service_daemon_set

View File

@@ -32,7 +32,7 @@
Run Command library (librc, -lrc) Run Command library (librc, -lrc)
.Sh SYNOPSIS .Sh SYNOPSIS
.In rc.h .In rc.h
.Ft "RC_STRINGLIST *" Fn rc_stringlist_new void .Ft "RC_STRINGLIST *" Fn rc_stringlist_new void
.Ft "RC_STRING *" Fn rc_stringlist_add "RC_STRINGLIST *list" "const char *item" .Ft "RC_STRING *" Fn rc_stringlist_add "RC_STRINGLIST *list" "const char *item"
.Ft "RC_STRING *" Fn rc_stringlist_addu "RC_STRINGLIST *list" "const char *item" .Ft "RC_STRING *" Fn rc_stringlist_addu "RC_STRINGLIST *list" "const char *item"
.Ft bool Fn rc_stringlist_delete RC_STRINGLIST "const char *item" .Ft bool Fn rc_stringlist_delete RC_STRINGLIST "const char *item"

View File

@@ -21,18 +21,17 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.Dd December 31, 2011 .Dd November 4, 2009
.Dt RUNSCRIPT 8 SMM .Dt RUNSCRIPT 8 SMM
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
.Nm runscript .Nm runscript
.Nd a means of hooking shell commands into a service .Nd a means of hooking shell commands into a service
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl D , -nodeps .Op Fl D , -nodeps
.Op Fl d , -debug .Op Fl d , -debug
.Op Fl s , -ifstarted .Op Fl s , -ifstarted
.Op Fl S , -ifstopped
.Op Fl Z , -dry-run .Op Fl Z , -dry-run
.Op Ar command ... .Op Ar command ...
.Sh DESCRIPTION .Sh DESCRIPTION
@@ -77,8 +76,6 @@ Set xtrace on in the shell to assist in debugging.
Ignore all dependency information the service supplies. Ignore all dependency information the service supplies.
.It Fl s , -ifstarted .It Fl s , -ifstarted
Only run the command if the service has been started. Only run the command if the service has been started.
.It Fl S , -ifstopped
Only run the command if the service has been stopped.
.It Fl q , -quiet .It Fl q , -quiet
Turns off all informational output the service generates. Turns off all informational output the service generates.
Output from any non OpenRC commands is not affected. Output from any non OpenRC commands is not affected.
@@ -92,42 +89,24 @@ or stopping them.
The following variables affect the service script: The following variables affect the service script:
.Bl -tag -width "RC_DEFAULTLEVEL" .Bl -tag -width "RC_DEFAULTLEVEL"
.It Ar extra_commands .It Ar extra_commands
Space separated list of extra commands the service defines. These should Space separated list of extra commands the service defines.
not depend on the service being stopped or started.
.It Ar extra_started_commands .It Ar extra_started_commands
Space separated list of extra commands the service defines. These only work if Space separated list of extra commands the service defines. These only work if
the service has already been started. the service has already been started.
.It Ar extra_stopped_commands
Space separated list of extra commands the service defines. These only work if
the service has already been stopped.
.It Ar description .It Ar description
String describing the service. String describing the service.
.It Ar description_$command .It Ar description_$command
String describing the extra command. String describing the extra command the.
.It Ar start_stop_daemon_args
List of arguments passed to start-stop-daemon when starting the daemon.
.It Ar command .It Ar command
Daemon to start or stop via Daemon to start or stop via
.Nm start-stop-daemon .Nm start-stop-daemon
if no start or stop function is defined by the service. if no start or stop function is defined by the service.
.It Ar command_args .It Ar command_args
List of arguments to pass to the daemon when starting. List of arguments to pass to the daemon when starting.
.It Ar command_background
Set this to "true", "yes" or "1" (case-insensitive) to force the daemon into
the background. This implies the "--make-pidfile" and "--pidfile" option of
.Xr start-stop-daemon 8
so the pidfile variable must be set.
.It Ar pidfile .It Ar pidfile
Pidfile to use for the above defined command. Pidfile to use for the above defined command.
.It Ar name .It Ar name
Display name used for the above defined command. Display name used for the above defined command.
.It Ar retry
Retry schedule to use when stopping the daemon. It can either be a
timeout in seconds or multiple signal/timeout pairs (like SIGTERM/5).
.It Ar required_dirs
A list of directories which must exist for the service to start.
.It Ar required_files
A list of files which must exist for the service to start.
.El .El
.Sh DEPENDENCIES .Sh DEPENDENCIES
You should define a You should define a
@@ -140,7 +119,7 @@ Here is a list of the functions you can use in a
.Ic depend .Ic depend
function. You simply pass the names of the services to it to add to that function. You simply pass the names of the services to it to add to that
dependency type, or prefix it with ! to remove it. dependency type, or prefix it with ! to remove it.
.Bl -tag -width "RC_DEFAULTLEVEL" .Bl -tag -width "RC_DEFAULTLEVEL"
.It Ic need .It Ic need
The service will refuse to start until needed services have started and it The service will refuse to start until needed services have started and it
will refuse to stop until any services that need it have stopped. will refuse to stop until any services that need it have stopped.
@@ -160,7 +139,7 @@ Tags a service with a keyword. Here's the keywords we currently understand:-
.Bl -tag -width indent .Bl -tag -width indent
.It Dv -shutdown .It Dv -shutdown
Don't stop this service when shutting the system down. Don't stop this service when shutting the system down.
This is normally quite safe as remaining daemons will be sent a SIGTERM just This normally quite safe as remaining daemons will be sent a SIGTERM just
before final shutdown. before final shutdown.
Network related services such as the network and dhcpcd init scripts normally Network related services such as the network and dhcpcd init scripts normally
have this keyword. have this keyword.
@@ -172,14 +151,16 @@ Other services should wait indefinitely for this service to start. Use
this keyword if your service may take longer than 60 seconds to start. this keyword if your service may take longer than 60 seconds to start.
.It Dv -jail .It Dv -jail
When in a jail, exclude this service from any dependencies. The service can When in a jail, exclude this service from any dependencies. The service can
still be run directly. Set via still be run directly. Set via
.Ic rc_sys .Ic rc_sys
in in
.Pa /etc/rc.conf .Pa /etc/rc.conf
.It Dv -lxc .It Dv -lxc
Same as -jail, but for Linux Resource Containers (LXC). Same as -jail, but for Linux Resource Containers (LXC).
.It Dv -openvz .It Dv -openvz
Same as -jail, but for OpenVZ systems. Same as -jail, but for OpenVZ systems.
.It Dv -prefix
Same as -jail, but for Prefix systems.
.It Dv -uml .It Dv -uml
Same as -jail, but for UML systems. Same as -jail, but for UML systems.
.It Dv -vserver .It Dv -vserver
@@ -240,7 +221,7 @@ seconds until all files exist.
Returns 0 if all files exist, otherwise non zero. Returns 0 if all files exist, otherwise non zero.
If If
.Ar timeout .Ar timeout
is less than 1 then we wait indefinitely. is less then 1 then we wait indefinitely.
.It Ic is_newer_than Ar file1 Ar file2 ... .It Ic is_newer_than Ar file1 Ar file2 ...
If If
.Ar file1 .Ar file1
@@ -307,22 +288,14 @@ Mark the service as coldplugged.
Mark the service as inactive. Mark the service as inactive.
.It Xo .It Xo
.Ic checkpath .Ic checkpath
.Op Fl D , -directory-truncate
.Op Fl d , -directory .Op Fl d , -directory
.Op Fl F , -file-truncate
.Op Fl f , -file .Op Fl f , -file
.Op Fl p , -pipe
.Op Fl m , -mode Ar mode .Op Fl m , -mode Ar mode
.Op Fl o , owner Ar owner .Op Fl o , owner Ar owner
.Ar path ... .Ar path ...
.Xc .Xc
Checks to see if the path exists, is of the right type, owned by the right Checks to see if the path exists, is of the right type, owned by the right
people and has the correct access modes. If not, then it corrects the path. people and has the correct access modes. If not, then it corrects the path.
.It Ic checkpath
.Op Fl W , -writable
.Ar path
.Xc
checks to see if the path is writable.
.It Ic yesno Ar value .It Ic yesno Ar value
If If
.Ar value .Ar value
@@ -331,18 +304,11 @@ matches YES, TRUE, ON or 1 regardless of case then we return 0, otherwise 1.
.Sh ENVIRONMENT .Sh ENVIRONMENT
.Nm .Nm
sets the following environment variables for use in the service scripts: sets the following environment variables for use in the service scripts:
.Bl -tag -width "RC_DEFAULTLEVEL" .Bl -tag -width "RC_DEFAULTLEVEL"
.It Va RC_SVCNAME .It Va RC_SVCNAME
Name of the service. Name of the service.
.It Va RC_RUNLEVEL .It Va RC_RUNLEVEL
Current runlevel that rc is in. Note that, in OpenRC, the reboot Current runlevel that rc is in.
runlevel is mapped to the shutdown runlevel. This was done because most
services do not need to know if a system is shutting down or rebooting.
If you are writing a service that does need to know this, see the
RC_REBOOT variable.
.It Va RC_REBOOT
This variable contains YES if the system is rebooting. If your service
needs to know the system is rebooting, you should test this variable.
.It Va RC_BOOTLEVEL .It Va RC_BOOTLEVEL
Boot runlevel chosen. Default is boot. Boot runlevel chosen. Default is boot.
.It Va RC_DEFAULTLEVEL .It Va RC_DEFAULTLEVEL
@@ -388,8 +354,9 @@ rc_provide_tap1="!net"
# To put in in /etc/rc.conf you would do it like this # To put in in /etc/rc.conf you would do it like this
rc_net_tap1_provide="!net" rc_net_tap1_provide="!net"
# It's also possible to negate keywords. # It's also possible to negate keywords. This is mainly useful for prefix
rc_keyword="-keyword" # users testing OpenRC.
rc_keyword="!noprefix"
.Ed .Ed
.Sh EXAMPLES .Sh EXAMPLES
.Pp .Pp
@@ -432,7 +399,7 @@ depend()
_need=`service_get_value need` _need=`service_get_value need`
else else
if _need_dbus; then if _need_dbus; then
_need="${_need} dbus" _need="${_need} dbus"
fi fi
fi fi
need ${_need} need ${_need}
@@ -479,7 +446,7 @@ eat()
veinfo "Eating `basename ${food}`" veinfo "Eating `basename ${food}`"
${command} --eat ${food} ${command} --eat ${food}
retval=$? retval=$?
: $(( result += retval )) : $((${result} += ${retval}))
[ ${retval} = 0 ] && ate="${ate} `basename ${food}`" [ ${retval} = 0 ] && ate="${ate} `basename ${food}`"
done done
@@ -495,12 +462,6 @@ show()
.Ed .Ed
.Sh BUGS .Sh BUGS
Because of the way we load our configuration files and the need to handle
more than one service directory, you can only use symlinks in service
directories to other services in the same directory.
You cannot symlink to a service in a different directory even if it is
another service directory.
.Pp
is_older_than should return 0 on success. is_older_than should return 0 on success.
Instead we return 1 to be compliant with Gentoo baselayout. Instead we return 1 to be compliant with Gentoo baselayout.
Users are encouraged to use the is_newer_than function which returns correctly. Users are encouraged to use the is_newer_than function which returns correctly.

View File

@@ -58,7 +58,7 @@ is used in an OpenRC service, then OpenRC can in turn check to see if the
daemon is still running. If not, then the service is marked as crashed. daemon is still running. If not, then the service is marked as crashed.
.Pp .Pp
Here are the options to specify the daemon and how it should start or stop: Here are the options to specify the daemon and how it should start or stop:
.Bl -tag -width indent .Bl -tag -width indent
.It Fl x , -exec Ar daemon .It Fl x , -exec Ar daemon
The The
.Ar daemon .Ar daemon
@@ -162,8 +162,9 @@ but with the standard error output.
These options are only used for stopping daemons: These options are only used for stopping daemons:
.Bl -tag -width indent .Bl -tag -width indent
.It Fl R , -retry Ar timeout | Ar signal Ns / Ns Ar timeout .It Fl R , -retry Ar timeout | Ar signal Ns / Ns Ar timeout
The retry specification can be either a timeout in seconds or multiple You can either specify a timeout in seconds or a multiple signal/timeout
signal/timeout pairs (like SIGTERM/5). pairs as a stopping schedule.
If not specified then a default value of SIGTERM/5 is assumed.
.El .El
.Sh ENVIRONMENT .Sh ENVIRONMENT
.Va SSD_NICELEVEL .Va SSD_NICELEVEL

Some files were not shown because too many files have changed in this diff Show More