Compare commits
130 Commits
openrc-0.5
...
openrc-0.6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
18064e19f6 | ||
|
|
cdf07b5970 | ||
|
|
82b265016a | ||
|
|
bdfab242b7 | ||
|
|
4ca32808dd | ||
|
|
9e5b9abf40 | ||
|
|
ac37dc2764 | ||
|
|
9285cb3392 | ||
|
|
6d9137d6c4 | ||
|
|
2fa6bb0d48 | ||
|
|
39776d6fb7 | ||
|
|
68c021c424 | ||
|
|
09bed967bf | ||
|
|
060b19e3e3 | ||
|
|
d8a76d1bf6 | ||
|
|
7653ef89b8 | ||
|
|
be6c0716ee | ||
|
|
4ea75dd1d6 | ||
|
|
b708852784 | ||
|
|
f700243016 | ||
|
|
b232e529f1 | ||
|
|
ae3186834f | ||
|
|
23546e27d9 | ||
|
|
1a188f8f72 | ||
|
|
89829f6d7c | ||
|
|
6e3b3bfc53 | ||
|
|
14c95ae9a6 | ||
|
|
d3ccbdb5a9 | ||
|
|
1cdf85e1ce | ||
|
|
2982cfab70 | ||
|
|
761fe99fe2 | ||
|
|
6f24d1cbd8 | ||
|
|
898552dcc3 | ||
|
|
6850566be0 | ||
|
|
3036b44798 | ||
|
|
acc0edb040 | ||
|
|
316a316d9b | ||
|
|
20b4076b12 | ||
|
|
4d86d34635 | ||
|
|
ae7a92ae7b | ||
|
|
67b538fd26 | ||
|
|
0276c4f516 | ||
|
|
7271449a0c | ||
|
|
4b333eaf36 | ||
|
|
59b08643f1 | ||
|
|
5c52e5beb5 | ||
|
|
c0f5f2122c | ||
|
|
ecf9ef49a7 | ||
|
|
bb45f0eabc | ||
|
|
f434c902a5 | ||
|
|
5ec2efaff2 | ||
|
|
9ca65be42e | ||
|
|
a704b97fd2 | ||
|
|
2c0a71172d | ||
|
|
cbafcd078d | ||
|
|
a165fbe384 | ||
|
|
02c12c1cac | ||
|
|
084f5e12eb | ||
|
|
3b9eaea8ec | ||
|
|
dc3ccd8101 | ||
|
|
9476a2e721 | ||
|
|
1d174cc60c | ||
|
|
12af86395f | ||
|
|
5b3e5edda2 | ||
|
|
775d56b877 | ||
|
|
22e2a4f0a1 | ||
|
|
ca752a5a2d | ||
|
|
93cecab1ed | ||
|
|
baf3b2dd45 | ||
|
|
e9e37ad798 | ||
|
|
4df8770a90 | ||
|
|
ec38bbbdda | ||
|
|
509e34d425 | ||
|
|
0de1d18d41 | ||
|
|
89a2d76772 | ||
|
|
80d4ce3a11 | ||
|
|
d21177e5c7 | ||
|
|
d29daf3952 | ||
|
|
1d9ce8e9a1 | ||
|
|
bb96dc4e01 | ||
|
|
ebb49805fc | ||
|
|
4a892a23ba | ||
|
|
95ee39ab1c | ||
|
|
3c8ea5896a | ||
|
|
7c5047acfc | ||
|
|
f2f7d0ae6d | ||
|
|
d27655c908 | ||
|
|
9f4a7afd83 | ||
|
|
ac6808a73e | ||
|
|
baeb59cd2e | ||
|
|
a4b03ead79 | ||
|
|
c96a015742 | ||
|
|
fdca530d4f | ||
|
|
da08e3822f | ||
|
|
ac7af85813 | ||
|
|
a8f6a9b654 | ||
|
|
aaa0498bf8 | ||
|
|
0ffe5caf18 | ||
|
|
5e8e38b9cf | ||
|
|
454bd460c4 | ||
|
|
a7fabeef95 | ||
|
|
07f9be7b1c | ||
|
|
42ca23b878 | ||
|
|
3dc712e222 | ||
|
|
44585fea46 | ||
|
|
6e485bde39 | ||
|
|
2ea1df634e | ||
|
|
807e5d7250 | ||
|
|
7012630302 | ||
|
|
51907c7368 | ||
|
|
8da7a49d02 | ||
|
|
29949a5496 | ||
|
|
7fbb6ad427 | ||
|
|
08b5664668 | ||
|
|
7962218dd8 | ||
|
|
889b317ac6 | ||
|
|
9907c90552 | ||
|
|
b4104957b1 | ||
|
|
6abeec7430 | ||
|
|
fbb78022f9 | ||
|
|
79b24f5b79 | ||
|
|
fc6cdefedb | ||
|
|
43f6c2196e | ||
|
|
c568baf8c8 | ||
|
|
aaced3face | ||
|
|
c3e9a7ec14 | ||
|
|
efec0b5012 | ||
|
|
278e65b24a | ||
|
|
1b3a413673 | ||
|
|
a685e4db0a |
14
Makefile
14
Makefile
@@ -2,11 +2,9 @@
|
|||||||
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
|
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
|
||||||
# All rights reserved. Released under the 2-clause BSD license.
|
# All rights reserved. Released under the 2-clause BSD license.
|
||||||
|
|
||||||
NAME= openrc
|
include Makefile.inc
|
||||||
VERSION= 0.5.0
|
|
||||||
PKG= ${NAME}-${VERSION}
|
|
||||||
|
|
||||||
SUBDIR= conf.d etc init.d man sh src
|
SUBDIR= conf.d etc init.d man scripts sh src
|
||||||
|
|
||||||
# Build our old net foo or not
|
# Build our old net foo or not
|
||||||
_OLDNET_SH= case "${MKOLDNET}" in \
|
_OLDNET_SH= case "${MKOLDNET}" in \
|
||||||
@@ -16,6 +14,14 @@ _OLDNET_SH= case "${MKOLDNET}" in \
|
|||||||
_OLDNET!= ${_OLDNET_SH}
|
_OLDNET!= ${_OLDNET_SH}
|
||||||
SUBDIR+= ${_OLDNET}$(shell ${_OLDNET_SH})
|
SUBDIR+= ${_OLDNET}$(shell ${_OLDNET_SH})
|
||||||
|
|
||||||
|
# Build pkgconfig or not
|
||||||
|
_PKGCONFIG_SH= case "${MKPKGCONFIG}" in \
|
||||||
|
[Yy][Ee][Ss]|"") echo "pkgconfig";; \
|
||||||
|
*) echo "";; \
|
||||||
|
esac
|
||||||
|
_PKGCONFIG!= ${_PKGCONFIG_SH}
|
||||||
|
SUBDIR+= ${_PKGCONFIG}$(shell ${_PKGCONFIG_SH})
|
||||||
|
|
||||||
# We need to ensure that runlevels is done last
|
# We need to ensure that runlevels is done last
|
||||||
SUBDIR+= runlevels
|
SUBDIR+= runlevels
|
||||||
|
|
||||||
|
|||||||
3
Makefile.inc
Normal file
3
Makefile.inc
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
NAME= openrc
|
||||||
|
VERSION= 0.6.6
|
||||||
|
PKG= ${NAME}-${VERSION}
|
||||||
8
README
8
README
@@ -11,6 +11,7 @@ PROGLDFLAGS=-static
|
|||||||
LIBNAME=lib64
|
LIBNAME=lib64
|
||||||
DESTDIR=/tmp/openrc-image
|
DESTDIR=/tmp/openrc-image
|
||||||
MKPAM=pam
|
MKPAM=pam
|
||||||
|
MKPKGCONFIG=no
|
||||||
MKTERMCAP=ncurses
|
MKTERMCAP=ncurses
|
||||||
MKTERMCAP=termcap
|
MKTERMCAP=termcap
|
||||||
MKOLDNET=yes
|
MKOLDNET=yes
|
||||||
@@ -40,7 +41,7 @@ If any of the following files exist then we do not overwrite them
|
|||||||
rc and rc.shutdown are the hooks from the BSD init into OpenRC.
|
rc and rc.shutdown are the hooks from the BSD init into OpenRC.
|
||||||
devd.conf is modified from FreeBSD to call /etc/rc.devd which is a generic
|
devd.conf is modified from FreeBSD to call /etc/rc.devd which is a generic
|
||||||
hook into OpenRC.
|
hook into OpenRC.
|
||||||
inittab is the same, but for SysVInit as used by most Linux distrubtions.
|
inittab is the same, but for SysVInit as used by most Linux distributions.
|
||||||
This can be found in the support folder.
|
This can be found in the support folder.
|
||||||
Obviously, if you're installing this onto a system that does not use OpenRC
|
Obviously, if you're installing this onto a system that does not use OpenRC
|
||||||
by default then you may wish to backup the above listed files, remove them
|
by default then you may wish to backup the above listed files, remove them
|
||||||
@@ -57,14 +58,15 @@ If you installed OpenRC from your chosen distribution, you should report
|
|||||||
bugs directly to them. For example, if you use Gentoo and emerged OpenRC
|
bugs directly to them. For example, if you use Gentoo and emerged OpenRC
|
||||||
then you should reports bugs to http://bugs.gentoo.org.
|
then you should reports bugs to http://bugs.gentoo.org.
|
||||||
|
|
||||||
Otherwise, you can report them directly to me at http://bugs.marples.name
|
Otherwise, you can report them directly to me at
|
||||||
|
http://roy.marples.name/projects/openrc
|
||||||
|
|
||||||
|
|
||||||
History - by Roy Marples
|
History - by Roy Marples
|
||||||
------------------------
|
------------------------
|
||||||
I became a Gentoo/Linux developer in 2004 and wrote the modular network
|
I became a Gentoo/Linux developer in 2004 and wrote the modular network
|
||||||
scripts for the Gentoo baselayout package. baselayout is a collection of
|
scripts for the Gentoo baselayout package. baselayout is a collection of
|
||||||
bash scripts to bring up your computer and it's services.
|
bash scripts to bring up your computer and its services.
|
||||||
Then towards the end of 2005 I found myself as the primary maintainer
|
Then towards the end of 2005 I found myself as the primary maintainer
|
||||||
for baselayout.
|
for baselayout.
|
||||||
|
|
||||||
|
|||||||
36
README.net
Normal file
36
README.net
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
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.
|
||||||
1
conf.d/.gitignore
vendored
1
conf.d/.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
network
|
network
|
||||||
|
staticroute
|
||||||
|
|||||||
@@ -1,14 +1,19 @@
|
|||||||
DIR= ${CONFDIR}
|
DIR= ${CONFDIR}
|
||||||
CONF= bootmisc fsck hostname local localmount network urandom
|
CONF= bootmisc fsck hostname local localmount network staticroute urandom
|
||||||
|
|
||||||
TARGETS+= network
|
TARGETS+= network staticroute
|
||||||
CLEANFILES+= network
|
CLEANFILES+= network staticroute
|
||||||
|
|
||||||
MK= ../mk
|
MK= ../mk
|
||||||
include ${MK}/os.mk
|
include ${MK}/os.mk
|
||||||
include Makefile.${OS}
|
include Makefile.${OS}
|
||||||
include ${MK}/scripts.mk
|
include ${MK}/scripts.mk
|
||||||
|
|
||||||
network: network.in network.${OS}
|
SOS?= BSD
|
||||||
cp network.in network
|
|
||||||
[ -e network.${OS} ] && cat network.${OS} >> network || true
|
network: network.in network.${SOS}
|
||||||
|
cp $@.in $@
|
||||||
|
[ -e $@.${SOS} ] && cat $@.${SOS} >> $@ || true
|
||||||
|
|
||||||
|
staticroute: staticroute.${SOS}
|
||||||
|
cp $@.${SOS} $@
|
||||||
|
|||||||
@@ -1,3 +1 @@
|
|||||||
CONF+= ipfw moused powerd rarpd savecore syscons
|
CONF+= ipfw moused powerd rarpd savecore syscons
|
||||||
|
|
||||||
network.${OS}:
|
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
CONF+= consolefont dmesg hwclock keymaps modules
|
CONF+= consolefont dmesg hwclock keymaps modules
|
||||||
|
SOS= Linux
|
||||||
|
|||||||
@@ -1,3 +1 @@
|
|||||||
CONF+= moused rarpd savecore
|
CONF+= moused rarpd savecore
|
||||||
|
|
||||||
network.${OS}:
|
|
||||||
|
|||||||
@@ -13,6 +13,11 @@
|
|||||||
#fsck_passno=">1"
|
#fsck_passno=">1"
|
||||||
#fsck_passno="<2"
|
#fsck_passno="<2"
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
# WARNING: Do not turn this off if you have any JFS partitions.
|
||||||
|
fsck_on_battery="YES"
|
||||||
|
|
||||||
# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
|
# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
|
||||||
# The end result of this is that if any periodic non-root filesystem checks are
|
# The end result of this is that if any periodic non-root filesystem checks are
|
||||||
# scheduled, under normal circumstances the actual check will happen during
|
# scheduled, under normal circumstances the actual check will happen during
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# Set CLOCK to "UTC" if your system 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 your 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 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.
|
# (software clock) 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"
|
||||||
|
|
||||||
|
|||||||
4
conf.d/network.BSD
Normal file
4
conf.d/network.BSD
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
# You can assign a default route
|
||||||
|
#defaultroute="192.168.0.1"
|
||||||
|
#defaultroute6="2001:a:b:c"
|
||||||
@@ -1,8 +1,20 @@
|
|||||||
|
|
||||||
|
# You can assign a default route
|
||||||
|
#defaultroute="gw 192.168.0.1"
|
||||||
|
#defaultroute6="gw 2001:a:b:c"
|
||||||
|
|
||||||
# ifconfig under Linux is not that powerful and doesn't easily handle
|
# ifconfig under Linux is not that powerful and doesn't easily handle
|
||||||
# multiple addresses
|
# multiple addresses
|
||||||
# On the other hand, ip (iproute2) is quite powerful and is also supported
|
# On the other hand, ip (iproute2) is quite powerful and is also supported
|
||||||
#ip_eth0="192.168.0.10/24; 192.168.10.10/24"
|
#ip_eth0="192.168.0.10/24; 192.168.10.10/24"
|
||||||
|
|
||||||
|
# You can also use ip to add the default route.
|
||||||
|
#defaultiproute="via 192.168.0.1"
|
||||||
|
#defaultiproute6="via 2001:a:b:c"
|
||||||
|
|
||||||
|
# ip doesn't handle MTU like ifconfig, but we can do it like so
|
||||||
|
#ifup_eth0="ip link set \$int mtu 1500"
|
||||||
|
|
||||||
# Create a bonded interface
|
# Create a bonded interface
|
||||||
#interfaces="bond0"
|
#interfaces="bond0"
|
||||||
#ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0"
|
#ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0"
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
# You should note that we don't stop the network at system shutdown by default.
|
# You should note that we don't stop the network at system shutdown by default.
|
||||||
# If you really need this, then set shutdown_network=YES
|
# If you really need this, then set shutdown_network=YES
|
||||||
|
|
||||||
# You can assign a default route
|
|
||||||
#defaultroute="192.168.0.1"
|
|
||||||
# Lastly, the interfaces variable pulls in virtual interfaces that cannot
|
# Lastly, the interfaces variable pulls in virtual interfaces that cannot
|
||||||
# be automatically detected.
|
# be automatically detected.
|
||||||
#interfaces="br0 bond0 vlan0"
|
#interfaces="br0 bond0 vlan0"
|
||||||
@@ -26,3 +24,5 @@
|
|||||||
# If you require DHCP, you should install dhcpcd and it to the boot or
|
# If you require DHCP, you should install dhcpcd and it to the boot or
|
||||||
# default runlevel.
|
# default runlevel.
|
||||||
|
|
||||||
|
# NIS users can set the domain name here
|
||||||
|
#domainname="foobar"
|
||||||
|
|||||||
6
conf.d/staticroute.BSD
Normal file
6
conf.d/staticroute.BSD
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Separate multiple routes using ; or new lines.
|
||||||
|
# /etc/route.conf(5) takes precedence over this configuration.
|
||||||
|
|
||||||
|
# Example static routes. See route(8) for syntax.
|
||||||
|
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 10.73.1.1
|
||||||
|
#net 192.168.1.0 -netmask 255.255.255.0 10.73.1.1"
|
||||||
8
conf.d/staticroute.Linux
Normal file
8
conf.d/staticroute.Linux
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Separate multiple routes using ; or new lines.
|
||||||
|
|
||||||
|
# Example static routes. See route(8) for syntax.
|
||||||
|
#staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1
|
||||||
|
#net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1"
|
||||||
|
|
||||||
|
# Example static routes using iproute2. See ip(8) for syntax.
|
||||||
|
#staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1"
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
# kernel then remove the IPv6 address from your config.
|
# kernel then remove the IPv6 address from your config.
|
||||||
|
|
||||||
# If you want to use a static address or use DHCP explicitly, jump
|
# If you want to use a static address or use DHCP explicitly, jump
|
||||||
# down to the section labelled INTERFACE HANDLERS.
|
# down to the section labeled INTERFACE HANDLERS.
|
||||||
#
|
#
|
||||||
# If you want to do anything more fancy, you should take the time to
|
# If you want to do anything more fancy, you should take the time to
|
||||||
# read through the rest of this file.
|
# read through the rest of this file.
|
||||||
@@ -22,10 +22,10 @@
|
|||||||
#
|
#
|
||||||
# We now support modular networking scripts which means we can easily
|
# We now support modular networking scripts which means we can easily
|
||||||
# add support for new interface types and modules while keeping
|
# add support for new interface types and modules while keeping
|
||||||
# compatability with existing ones.
|
# compatibility with existing ones.
|
||||||
#
|
#
|
||||||
# Modules load by default if the package they need is installed. If
|
# Modules load by default if the package they need is installed. If
|
||||||
# you specify a module here that doesn't have it's package installed
|
# you specify a module here that doesn't have its package installed
|
||||||
# then you get an error stating which package you need to install.
|
# then you get an error stating which package you need to install.
|
||||||
# Ideally, you only use the modules setting when you have two or more
|
# Ideally, you only use the modules setting when you have two or more
|
||||||
# packages installed that supply the same service.
|
# packages installed that supply the same service.
|
||||||
@@ -43,11 +43,6 @@
|
|||||||
# (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
|
||||||
#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"
|
||||||
# Or you can use sequence expressions
|
|
||||||
#config_eth0="192.168.0.{2..4}/24" FIXME - may not work with baselayout2
|
|
||||||
# which does the same as above. Be careful though as if you use this and
|
|
||||||
# fallbacks, you have to ensure that both end up with the same number of
|
|
||||||
# values otherwise your fallback won't work correctly.
|
|
||||||
|
|
||||||
# You can also use IPv6 addresses
|
# You can also use IPv6 addresses
|
||||||
# (you should always specify a prefix length with IPv6 here)
|
# (you should always specify a prefix length with IPv6 here)
|
||||||
@@ -101,8 +96,8 @@
|
|||||||
#modules="iwconfig"
|
#modules="iwconfig"
|
||||||
|
|
||||||
# ifconfig (iwconig) support is a one shot script - wpa_supplicant is daemon
|
# ifconfig (iwconig) support is a one shot script - wpa_supplicant is daemon
|
||||||
# that scans, assoicates and re-configures if assocation is lost.
|
# that scans, associates and re-configures if association is lost.
|
||||||
# We call it iwconfig to seperate the wireless setup from ifconfig.
|
# We call it iwconfig to separate the wireless setup from ifconfig.
|
||||||
####################################
|
####################################
|
||||||
# HINTS
|
# HINTS
|
||||||
#
|
#
|
||||||
@@ -187,7 +182,7 @@
|
|||||||
#dns_servers_001122334455="192.168.0.1 192.168.0.2"
|
#dns_servers_001122334455="192.168.0.1 192.168.0.2"
|
||||||
|
|
||||||
# Map a MAC address to an SSID
|
# Map a MAC address to an SSID
|
||||||
# This is used when the Access Point is not broadcasting it's SSID
|
# This is used when the Access Point is not broadcasting its SSID
|
||||||
# WARNING: This will override the SSID being broadcast due to some
|
# WARNING: This will override the SSID being broadcast due to some
|
||||||
# Access Points sending an SSID even when they have been configured
|
# Access Points sending an SSID even when they have been configured
|
||||||
# not to!
|
# not to!
|
||||||
@@ -198,7 +193,7 @@
|
|||||||
# This lists the preferred SSIDs to connect to in order
|
# This lists the preferred SSIDs to connect to in order
|
||||||
# SSID's can contain any characters here as they must match the broadcast
|
# SSID's can contain any characters here as they must match the broadcast
|
||||||
# SSID exactly.
|
# SSID exactly.
|
||||||
# Surround each SSID with the " character and seperate them with a space
|
# Surround each SSID with the " character and separate them with a space
|
||||||
# If the first SSID isn't found then it moves onto the next
|
# If the first SSID isn't found then it moves onto the next
|
||||||
# If this isn't defined then it connects to the first one found
|
# If this isn't defined then it connects to the first one found
|
||||||
#preferred_aps="SSID1 SSID2"
|
#preferred_aps="SSID1 SSID2"
|
||||||
@@ -213,9 +208,9 @@
|
|||||||
# any other available AP
|
# any other available AP
|
||||||
# "preferredonly" means it will only connect to visible APs in the preferred
|
# "preferredonly" means it will only connect to visible APs in the preferred
|
||||||
# list
|
# list
|
||||||
# "forcepreferred" means it will forceably connect to APs in order if it does
|
# "forcepreferred" means it will forcibly connect to APs in order if it does
|
||||||
# not find them in a scan
|
# not find them in a scan
|
||||||
# "forcepreferredonly" means it forceably connects to the APs in order and
|
# "forcepreferredonly" means it forcibly connects to the APs in order and
|
||||||
# does not bother to scan
|
# does not bother to scan
|
||||||
# "forceany" does the same as forcepreferred + connects to any other
|
# "forceany" does the same as forcepreferred + connects to any other
|
||||||
# available AP
|
# available AP
|
||||||
@@ -242,12 +237,12 @@
|
|||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
# wpa_supplicant
|
# wpa_supplicant
|
||||||
# emerge net-wireless/wpa-supplicant
|
# emerge net-wireless/wpa_supplicant
|
||||||
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
|
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
|
||||||
# Console the wpa_supplicant.conf.example that is installed in
|
# Consult the wpa_supplicant.conf.example that is installed in
|
||||||
# /usr/share/doc/wpa_supplicant
|
# /usr/share/doc/wpa_supplicant
|
||||||
|
|
||||||
# By default we don't wait for wpa_suppliant to associate and authenticate.
|
# By default we don't wait for wpa_supplicant to associate and authenticate.
|
||||||
# If you would like to, so 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.
|
||||||
@@ -325,7 +320,7 @@
|
|||||||
# Set generic DHCP options like so
|
# Set generic DHCP options like so
|
||||||
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
|
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
|
||||||
|
|
||||||
# This tells the dhcp client to release it's lease when it stops, not to
|
# This tells the dhcp client to release its lease when it stops, not to
|
||||||
# overwrite dns, ntp and nis settings, not to set a default route and not to
|
# overwrite dns, ntp and nis settings, not to set a default route and not to
|
||||||
# send the current hostname to the dhcp server and when it starts.
|
# send the current hostname to the dhcp server and when it starts.
|
||||||
# You can use any combination of the above options - the default is not to
|
# You can use any combination of the above options - the default is not to
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
# kernel then remove the IPv6 address from your config.
|
# kernel then remove the IPv6 address from your config.
|
||||||
|
|
||||||
# If you want to use a static address or use DHCP explicitly, jump
|
# If you want to use a static address or use DHCP explicitly, jump
|
||||||
# down to the section labelled INTERFACE HANDLERS.
|
# down to the section labeled INTERFACE HANDLERS.
|
||||||
#
|
#
|
||||||
# If you want to do anything more fancy, you should take the time to
|
# If you want to do anything more fancy, you should take the time to
|
||||||
# read through the rest of this file.
|
# read through the rest of this file.
|
||||||
@@ -23,10 +23,10 @@
|
|||||||
#
|
#
|
||||||
# We now support modular networking scripts which means we can easily
|
# We now support modular networking scripts which means we can easily
|
||||||
# add support for new interface types and modules while keeping
|
# add support for new interface types and modules while keeping
|
||||||
# compatability with existing ones.
|
# compatibility with existing ones.
|
||||||
#
|
#
|
||||||
# Modules load by default if the package they need is installed. If
|
# Modules load by default if the package they need is installed. If
|
||||||
# you specify a module here that doesn't have it's package installed
|
# you specify a module here that doesn't have its package installed
|
||||||
# then you get an error stating which package you need to install.
|
# then you get an error stating which package you need to install.
|
||||||
# Ideally, you only use the modules setting when you have two or more
|
# Ideally, you only use the modules setting when you have two or more
|
||||||
# packages installed that supply the same service.
|
# packages installed that supply the same service.
|
||||||
@@ -70,11 +70,6 @@
|
|||||||
# iproute2 does not do this as there is no need to
|
# iproute2 does not do this as there is no need to
|
||||||
#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.
|
||||||
# Or you can use sequence expressions
|
|
||||||
#config_eth0="192.168.0.{2..4}/24"
|
|
||||||
# which does the same as above. Be careful though as if you use this and
|
|
||||||
# fallbacks, you have to ensure that both end up with the same number of
|
|
||||||
# values otherwise your fallback won't work correctly.
|
|
||||||
|
|
||||||
# You can also use IPv6 addresses
|
# You can also use IPv6 addresses
|
||||||
# (you should always specify a prefix length with IPv6 here)
|
# (you should always specify a prefix length with IPv6 here)
|
||||||
@@ -111,7 +106,7 @@
|
|||||||
|
|
||||||
# Each module described below can set a default base metric, lower is
|
# Each module described below can set a default base metric, lower is
|
||||||
# preferred over higher. This is so we can prefer a wired route over a
|
# preferred over higher. This is so we can prefer a wired route over a
|
||||||
# wireless route automaticaly. You can override this by setting
|
# wireless route automatically. You can override this by setting
|
||||||
#metric_eth0="100"
|
#metric_eth0="100"
|
||||||
# or on a global basis
|
# or on a global basis
|
||||||
#metric="100"
|
#metric="100"
|
||||||
@@ -258,7 +253,7 @@
|
|||||||
#key_SSID="s:foobar enc open"
|
#key_SSID="s:foobar enc open"
|
||||||
#key_SSID="1234-5678-9012 enc open"
|
#key_SSID="1234-5678-9012 enc open"
|
||||||
|
|
||||||
# You may want to set muliple keys - here's an example
|
# You may want to set multiple keys - here's an example
|
||||||
# It sets 4 keys on the card and instructs to use key 2 by default
|
# It sets 4 keys on the card and instructs to use key 2 by default
|
||||||
#key_SSID="[1] s:passkey1 key [2] s:passkey2 key [3] s:passkey3 key [4] s:passkey4 key [2]"
|
#key_SSID="[1] s:passkey1 key [2] s:passkey2 key [3] s:passkey3 key [4] s:passkey4 key [2]"
|
||||||
|
|
||||||
@@ -288,7 +283,7 @@
|
|||||||
#dns_servers_001122334455="192.168.0.1 192.168.0.2"
|
#dns_servers_001122334455="192.168.0.1 192.168.0.2"
|
||||||
|
|
||||||
# Map a MAC address to an SSID
|
# Map a MAC address to an SSID
|
||||||
# This is used when the Access Point is not broadcasting it's SSID
|
# This is used when the Access Point is not broadcasting its SSID
|
||||||
# WARNING: This will override the SSID being broadcast due to some
|
# WARNING: This will override the SSID being broadcast due to some
|
||||||
# Access Points sending an SSID even when they have been configured
|
# Access Points sending an SSID even when they have been configured
|
||||||
# not to!
|
# not to!
|
||||||
@@ -299,7 +294,7 @@
|
|||||||
# This lists the preferred SSIDs to connect to in order
|
# This lists the preferred SSIDs to connect to in order
|
||||||
# SSID's can contain any characters here as they must match the broadcast
|
# SSID's can contain any characters here as they must match the broadcast
|
||||||
# SSID exactly.
|
# SSID exactly.
|
||||||
# Surround each SSID with the " character and seperate them with a space
|
# Surround each SSID with the " character and separate them with a space
|
||||||
# If the first SSID isn't found then it moves onto the next
|
# If the first SSID isn't found then it moves onto the next
|
||||||
# If this isn't defined then it connects to the first one found
|
# If this isn't defined then it connects to the first one found
|
||||||
#preferred_aps="SSID1 SSID2"
|
#preferred_aps="SSID1 SSID2"
|
||||||
@@ -312,9 +307,9 @@
|
|||||||
# "any" means it will connect to visible APs in the preferred list and then any
|
# "any" means it will connect to visible APs in the preferred list and then any
|
||||||
# other available AP
|
# other available AP
|
||||||
# "preferredonly" means it will only connect to visible APs in the preferred list
|
# "preferredonly" means it will only connect to visible APs in the preferred list
|
||||||
# "forcepreferred" means it will forceably connect to APs in order if it does not find
|
# "forcepreferred" means it will forcibly connect to APs in order if it does not find
|
||||||
# them in a scan
|
# them in a scan
|
||||||
# "forcepreferredonly" means it forceably connects to the APs in order and does not bother
|
# "forcepreferredonly" means it forcibly connects to the APs in order and does not bother
|
||||||
# to scan
|
# to scan
|
||||||
# "forceany" does the same as forcepreferred + connects to any other available AP
|
# "forceany" does the same as forcepreferred + connects to any other available AP
|
||||||
# Default is "any"
|
# Default is "any"
|
||||||
@@ -341,16 +336,16 @@
|
|||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# wpa_supplicant
|
# wpa_supplicant
|
||||||
# emerge net-wireless/wpa-supplicant
|
# emerge net-wireless/wpa_supplicant
|
||||||
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
|
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
|
||||||
# Console the wpa_supplicant.conf.example that is installed in
|
# Consult the wpa_supplicant.conf.example that is installed in
|
||||||
# /usr/share/doc/wpa_supplicant
|
# /usr/share/doc/wpa_supplicant
|
||||||
# To configure wpa_supplicant
|
# To configure wpa_supplicant
|
||||||
#wpa_supplicant_ath0="-Dmadwifi" # For Atheros based cards
|
#wpa_supplicant_ath0="-Dmadwifi" # For Atheros based cards
|
||||||
# Consult wpa_supplicant for more drivers - the default is -Dwext which should
|
# Consult wpa_supplicant for more drivers - the default is -Dwext which should
|
||||||
# work for most cards.
|
# work for most cards.
|
||||||
|
|
||||||
# By default we don't wait for wpa_suppliant 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 to, so can specify how long in seconds.
|
# If you would like to, so can specify how long in seconds.
|
||||||
@@ -453,7 +448,7 @@
|
|||||||
# Set generic DHCP options like so
|
# Set generic DHCP options like so
|
||||||
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
|
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
|
||||||
|
|
||||||
# This tells the dhcp client to release it's lease when it stops, not to
|
# This tells the dhcp client to release its lease when it stops, not to
|
||||||
# overwrite dns, ntp and nis settings, not to set a default route and not to
|
# overwrite dns, ntp and nis settings, not to set a default route and not to
|
||||||
# send the current hostname to the dhcp server and when it starts.
|
# send the current hostname to the dhcp server and when it starts.
|
||||||
# You can use any combination of the above options - the default is not to
|
# You can use any combination of the above options - the default is not to
|
||||||
@@ -577,7 +572,7 @@
|
|||||||
#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
|
||||||
|
|
||||||
# You can also configure the bond here, which must be done via sysfs on 2.6
|
# You can also configure the bond here, which must be done via sysfs on 2.6
|
||||||
# kernels or newer. See the kernel bonding documention for a description of
|
# kernels or newer. See the kernel bonding documentation for a description of
|
||||||
# these options.
|
# these options.
|
||||||
#arp_ip_target_bond0="+26.0.0.0"
|
#arp_ip_target_bond0="+26.0.0.0"
|
||||||
|
|
||||||
@@ -663,7 +658,7 @@
|
|||||||
#
|
#
|
||||||
# Dead peer detection
|
# Dead peer detection
|
||||||
# lcp-echo-interval 15 # Send a LCP echo every 15 seconds
|
# lcp-echo-interval 15 # Send a LCP echo every 15 seconds
|
||||||
# lcp-echo-failure 3 # Make peer dead after 3 consective
|
# lcp-echo-failure 3 # Make peer dead after 3 consecutive
|
||||||
# # echo-requests
|
# # echo-requests
|
||||||
#
|
#
|
||||||
# Compression options - use these to completely disable compression
|
# Compression options - use these to completely disable compression
|
||||||
@@ -827,8 +822,8 @@
|
|||||||
#config_nas0="'192.168.0.1/24'"
|
#config_nas0="'192.168.0.1/24'"
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Tunnelling
|
# Tunneling
|
||||||
# WARNING: For tunnelling it is highly recommended that you
|
# WARNING: For tunneling it is highly recommended that you
|
||||||
# emerge sys-apps/iproute2
|
# emerge sys-apps/iproute2
|
||||||
#
|
#
|
||||||
# For GRE tunnels
|
# For GRE tunnels
|
||||||
@@ -843,7 +838,7 @@
|
|||||||
|
|
||||||
# 6to4 Tunnels allow IPv6 to work over IPv4 addresses, provided you
|
# 6to4 Tunnels allow IPv6 to work over IPv4 addresses, provided you
|
||||||
# have a non-private address configured on an interface.
|
# have a non-private address configured on an interface.
|
||||||
# link_6to4="eth0" # Interface to base it's 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_need_6to4="net.eth0"
|
#rc_need_6to4="net.eth0"
|
||||||
@@ -853,7 +848,7 @@
|
|||||||
# sit0 - otherwise use a different name like 6to4 in the example above.
|
# sit0 - otherwise use a different name like 6to4 in the example above.
|
||||||
|
|
||||||
# You can also specify a relay and suffix if you like.
|
# You can also specify a relay and suffix if you like.
|
||||||
# The default relay is 192.88.99.1 and the defualt suffix is :1
|
# The default relay is 192.88.99.1 and the default suffix is :1
|
||||||
#relay_6to4="192.168.3.2"
|
#relay_6to4="192.168.3.2"
|
||||||
#suffix_6to4=":ff"
|
#suffix_6to4=":ff"
|
||||||
|
|
||||||
@@ -901,7 +896,7 @@
|
|||||||
# and you're done :)
|
# and you're done :)
|
||||||
|
|
||||||
# By default we don't wait for netplug/ifplugd to configure the interface.
|
# By default we don't wait for netplug/ifplugd to configure the interface.
|
||||||
# If you would like it to wait so that other services now that network is up
|
# If you would like it to wait so that other services know that network is up
|
||||||
# then you can specify a timeout here.
|
# then you can specify a timeout here.
|
||||||
#plug_timeout="10"
|
#plug_timeout="10"
|
||||||
# A value of 0 means wait forever.
|
# A value of 0 means wait forever.
|
||||||
@@ -941,8 +936,8 @@
|
|||||||
|
|
||||||
#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
|
||||||
# # only works on some network adapters and requires the mii-diag
|
# # only works on some network adapters and requires the
|
||||||
# # package to be installed.
|
# # sys-apps/net-tools package to be installed.
|
||||||
# if mii-tool "${IFACE}" 2> /dev/null | grep -q 'no link'; then
|
# if mii-tool "${IFACE}" 2> /dev/null | grep -q 'no link'; then
|
||||||
# ewarn "No link on ${IFACE}, aborting configuration"
|
# ewarn "No link on ${IFACE}, aborting configuration"
|
||||||
# return 1
|
# return 1
|
||||||
@@ -992,7 +987,7 @@
|
|||||||
# # 'from 24.80.102.112/32 to 192.168.1.0/24 table localnet priority 100' \
|
# # 'from 24.80.102.112/32 to 192.168.1.0/24 table localnet priority 100' \
|
||||||
# # 'from 216.113.223.51/32 to 192.168.1.0/24 table localnet priority 100' \
|
# # 'from 216.113.223.51/32 to 192.168.1.0/24 table localnet priority 100' \
|
||||||
# #"
|
# #"
|
||||||
# eval set -- $\rules_${IFVAR}
|
# eval set -- \$rules_${IFVAR}
|
||||||
# if [ $# != 0 ]; then
|
# if [ $# != 0 ]; then
|
||||||
# einfo "Adding IP policy routing rules"
|
# einfo "Adding IP policy routing rules"
|
||||||
# eindent
|
# eindent
|
||||||
@@ -1003,7 +998,7 @@
|
|||||||
# else
|
# else
|
||||||
# for x; do
|
# for x; do
|
||||||
# ebegin "${x}"
|
# ebegin "${x}"
|
||||||
# ip rule add ${x} dev "${IFACE}"
|
# ip rule add ${x}
|
||||||
# eend $?
|
# eend $?
|
||||||
# done
|
# done
|
||||||
# fi
|
# fi
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Set to "YES" if you want the rc system to try and start services
|
# Set to "YES" if you want the rc system to try and start services
|
||||||
# in parallel for a slight speed improvement. When running in parallel we
|
# in parallel for a slight speed improvement. When running in parallel we
|
||||||
# prefix the service output with it's name as the output will get
|
# prefix the service output with its name as the output will get
|
||||||
# jumbled up.
|
# jumbled up.
|
||||||
# WARNING: whilst we have improved parallel, it can still potentially lock
|
# WARNING: whilst we have improved parallel, it can still potentially lock
|
||||||
# the boot process. Don't file bugs about this unless you can supply
|
# the boot process. Don't file bugs about this unless you can supply
|
||||||
@@ -11,7 +11,8 @@
|
|||||||
|
|
||||||
# Set rc_interactive to "YES" and you'll be able to press the I key during
|
# Set rc_interactive to "YES" and you'll be able to press the I key during
|
||||||
# boot so you can choose to start specific services. Set to "NO" to disable
|
# boot so you can choose to start specific services. Set to "NO" to disable
|
||||||
# this feature.
|
# this feature. This feature is automatically disabled if rc_parallel is
|
||||||
|
# set to YES.
|
||||||
#rc_interactive="YES"
|
#rc_interactive="YES"
|
||||||
|
|
||||||
# If we need to drop to a shell, you can specify it here.
|
# If we need to drop to a shell, you can specify it here.
|
||||||
@@ -75,8 +76,14 @@
|
|||||||
# Set unicode to YES to turn on unicode support for keyboards and screens.
|
# Set unicode to YES to turn on unicode support for keyboards and screens.
|
||||||
#unicode="NO"
|
#unicode="NO"
|
||||||
|
|
||||||
# Network fstypes. Below is the default.
|
# Below is the default list of network fstypes.
|
||||||
net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
|
#
|
||||||
|
# afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
|
||||||
|
# nfs nfs4 ocfs2 shfs smbfs
|
||||||
|
#
|
||||||
|
# If you would like to add to this list, you can do so by adding your
|
||||||
|
# own fstypes to the following variable.
|
||||||
|
#extra_net_fs_list=""
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# SERVICE CONFIGURATION VARIABLES
|
# SERVICE CONFIGURATION VARIABLES
|
||||||
|
|||||||
11
init.d.misc/.gitignore
vendored
Normal file
11
init.d.misc/.gitignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
avahi-dnsconfd
|
||||||
|
avahid
|
||||||
|
dhcpcd
|
||||||
|
dbus
|
||||||
|
hald
|
||||||
|
named
|
||||||
|
ntpd
|
||||||
|
openvpn
|
||||||
|
polkitd
|
||||||
|
sshd
|
||||||
|
wpa_supplicant
|
||||||
@@ -14,7 +14,7 @@ depend()
|
|||||||
use logger
|
use logger
|
||||||
after bootmisc modules
|
after bootmisc modules
|
||||||
before dns dhcpcd net
|
before dns dhcpcd net
|
||||||
keyword noshutdown
|
keyword -shutdown
|
||||||
}
|
}
|
||||||
|
|
||||||
find_wireless()
|
find_wireless()
|
||||||
@@ -24,7 +24,9 @@ find_wireless()
|
|||||||
case "$RC_UNAME" in
|
case "$RC_UNAME" in
|
||||||
Linux)
|
Linux)
|
||||||
for iface in /sys/class/net/*; do
|
for iface in /sys/class/net/*; do
|
||||||
if [ -e "$iface"/wireless ]; then
|
if [ -e "$iface"/wireless -o \
|
||||||
|
-e "$iface"/phy80211 ]
|
||||||
|
then
|
||||||
echo "${iface##*/}"
|
echo "${iface##*/}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
3
init.d/.gitignore
vendored
3
init.d/.gitignore
vendored
@@ -24,6 +24,7 @@ mount-ro
|
|||||||
mtab
|
mtab
|
||||||
numlock
|
numlock
|
||||||
procfs
|
procfs
|
||||||
|
staticroute
|
||||||
sysfs
|
sysfs
|
||||||
devdb
|
devdb
|
||||||
hostid
|
hostid
|
||||||
@@ -34,6 +35,8 @@ rc-enabled
|
|||||||
rpcbind
|
rpcbind
|
||||||
savecore
|
savecore
|
||||||
swap-blk
|
swap-blk
|
||||||
|
swclock
|
||||||
syslogd
|
syslogd
|
||||||
|
termencoding
|
||||||
ttys
|
ttys
|
||||||
wscons
|
wscons
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
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 swap.in sysctl.in urandom.in
|
network.in root.in savecache.in staticroute.in swap.in swclock.in \
|
||||||
|
sysctl.in urandom.in
|
||||||
BIN= ${OBJS}
|
BIN= ${OBJS}
|
||||||
|
|
||||||
# Build our old net foo or not
|
# Build our old net foo or not
|
||||||
|
|||||||
@@ -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 nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -4,11 +4,10 @@
|
|||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
use hostname
|
|
||||||
need localmount
|
need localmount
|
||||||
before logger
|
before logger
|
||||||
after clock sysctl
|
after clock sysctl
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
dir_writeable()
|
dir_writeable()
|
||||||
@@ -26,7 +25,7 @@ cleanup_tmp_dir()
|
|||||||
mkdir -p "$dir" || return $?
|
mkdir -p "$dir" || return $?
|
||||||
fi
|
fi
|
||||||
dir_writeable "$dir" || return 1
|
dir_writeable "$dir" || return 1
|
||||||
chmod +t "$dir"
|
chmod a+rwt "$dir"
|
||||||
cd "$dir"
|
cd "$dir"
|
||||||
if yesno $wipe_tmp; then
|
if yesno $wipe_tmp; then
|
||||||
ebegin "Wiping $dir directory"
|
ebegin "Wiping $dir directory"
|
||||||
@@ -36,6 +35,12 @@ cleanup_tmp_dir()
|
|||||||
# Faster than find
|
# Faster than find
|
||||||
rm -rf -- [^ajlq\.]*
|
rm -rf -- [^ajlq\.]*
|
||||||
|
|
||||||
|
# pam_mktemp creates a .private directory within which
|
||||||
|
# each user gets a private directory with immutable
|
||||||
|
# bit set; remove the immutable bit before trying to
|
||||||
|
# remove it.
|
||||||
|
[ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null
|
||||||
|
|
||||||
find $startopts ! -name . \
|
find $startopts ! -name . \
|
||||||
! -path "./lost+found" \
|
! -path "./lost+found" \
|
||||||
! -path "./lost+found/*" \
|
! -path "./lost+found/*" \
|
||||||
@@ -49,8 +54,6 @@ cleanup_tmp_dir()
|
|||||||
! -path "./aquota.group/*" \
|
! -path "./aquota.group/*" \
|
||||||
! -path "./journal" \
|
! -path "./journal" \
|
||||||
! -path "./journal/*" \
|
! -path "./journal/*" \
|
||||||
! -path "./.private" \
|
|
||||||
! -path "./.private/*" \
|
|
||||||
-exec rm -rf {} \;
|
-exec rm -rf {} \;
|
||||||
eend 0
|
eend 0
|
||||||
else
|
else
|
||||||
@@ -76,9 +79,10 @@ start()
|
|||||||
# Remove any added console dirs
|
# Remove any added console dirs
|
||||||
rm -rf "$RC_LIBEXECDIR"/console
|
rm -rf "$RC_LIBEXECDIR"/console
|
||||||
|
|
||||||
local logw=false runw=false
|
local logw=false runw=false extra=
|
||||||
# Ensure that our basic dirs exist
|
# Ensure that our basic dirs exist
|
||||||
for x in /var/log /var/run /tmp; do
|
[ "$RC_UNAME" = Linux ] && extra=/var/lib/misc # Satisfy Linux FHS
|
||||||
|
for x in /var/log /var/run /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"
|
||||||
@@ -94,7 +98,7 @@ start()
|
|||||||
for x in "" $xtra; do
|
for x in "" $xtra; do
|
||||||
mkutmp /var/run/utmp$x
|
mkutmp /var/run/utmp$x
|
||||||
done
|
done
|
||||||
[ -e /var/log/wtmp ] && mkutmp /var/log/wtmp
|
[ -e /var/log/wtmp ] || mkutmp /var/log/wtmp
|
||||||
eend 0
|
eend 0
|
||||||
|
|
||||||
ebegin "Cleaning /var/run"
|
ebegin "Cleaning /var/run"
|
||||||
@@ -105,7 +109,7 @@ start()
|
|||||||
# Clean stale sockets
|
# Clean stale sockets
|
||||||
if [ -S "$x" ]; then
|
if [ -S "$x" ]; then
|
||||||
if type fuser >/dev/null 2>&1; then
|
if type fuser >/dev/null 2>&1; then
|
||||||
fuser "$x" 2>/dev/null || rm -- "$x"
|
fuser "$x" >/dev/null 2>&1 || rm -- "$x"
|
||||||
else
|
else
|
||||||
rm -- "$x"
|
rm -- "$x"
|
||||||
fi
|
fi
|
||||||
@@ -149,7 +153,7 @@ start()
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f /etc/nologin
|
[ -w /etc/nologin ] && rm -f /etc/nologin
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ depend()
|
|||||||
{
|
{
|
||||||
need localmount termencoding
|
need localmount termencoding
|
||||||
after hotplug bootmisc
|
after hotplug bootmisc
|
||||||
keyword noopenvz noprefix nouml novserver noxenu
|
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
@@ -45,8 +45,10 @@ start()
|
|||||||
[ -d /dev/vc ] && ttydev=/dev/vc/
|
[ -d /dev/vc ] && ttydev=/dev/vc/
|
||||||
x=1
|
x=1
|
||||||
while [ $x -le $ttyn ]; do
|
while [ $x -le $ttyn ]; do
|
||||||
setfont $consolefont $param -C $ttydev$x >/dev/null
|
if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then
|
||||||
retval=$(($retval + $?))
|
retval=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
x=$(($x + 1))
|
x=$(($x + 1))
|
||||||
done
|
done
|
||||||
eend $retval
|
eend $retval
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ depend() {
|
|||||||
need localmount
|
need localmount
|
||||||
after bootmisc
|
after bootmisc
|
||||||
before net.lo0
|
before net.lo0
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start_pre() {
|
start_pre() {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ description="Mount system critical filesystems in /dev."
|
|||||||
|
|
||||||
depend() {
|
depend() {
|
||||||
use dev
|
use dev
|
||||||
keyword noprefix novserver
|
keyword -prefix -vserver
|
||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ description="Set the dmesg level for a cleaner boot"
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
before dev modules
|
before dev modules
|
||||||
keyword novserver
|
keyword -vserver
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ description="Configures a specific kernel dump device."
|
|||||||
|
|
||||||
depend() {
|
depend() {
|
||||||
need swap
|
need swap
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ _IFS="
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
use dev clock modules
|
use dev clock modules
|
||||||
keyword nojail noopenvz noprefix notimeout novserver
|
keyword -jail -openvz -prefix -timeout -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
_abort() {
|
_abort() {
|
||||||
@@ -30,33 +30,6 @@ _forcefsck()
|
|||||||
[ -e /forcefsck ] || get_bootparam forcefsck
|
[ -e /forcefsck ] || get_bootparam forcefsck
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_ac_power()
|
|
||||||
{
|
|
||||||
if [ -f /proc/acpi/ac_adapter/AC/state ]; then
|
|
||||||
cat /proc/acpi/ac_adapter/AC/state | while read line; do
|
|
||||||
case "$line" in
|
|
||||||
"state:"*"off-line") return 128;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
elif [ -f /proc/pmu/info ]; then
|
|
||||||
cat /proc/pmu/info | while read line; do
|
|
||||||
case "$line" in
|
|
||||||
"AC Power"*": 0") return 128;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
elif type envstat >/dev/null 2>&1; then
|
|
||||||
# NetBSD has envstat
|
|
||||||
envstat -d acpiacad0 2>/dev/null | while read line; do
|
|
||||||
case "$line" in
|
|
||||||
"connected:"*"OFF") return 128;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
else
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
[ $? != 128 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
local fsck_opts= p= check_extra=
|
local fsck_opts= p= check_extra=
|
||||||
@@ -68,7 +41,7 @@ start()
|
|||||||
if _forcefsck; then
|
if _forcefsck; then
|
||||||
fsck_opts="$fsck_opts -f"
|
fsck_opts="$fsck_opts -f"
|
||||||
check_extra="(check forced)"
|
check_extra="(check forced)"
|
||||||
elif ! _on_ac_power; then
|
elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then
|
||||||
ewarn "Skipping fsck due to not being on AC power"
|
ewarn "Skipping fsck due to not being on AC power"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ depend()
|
|||||||
{
|
{
|
||||||
use root
|
use root
|
||||||
before devd net
|
before devd net
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
_set()
|
_set()
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
description="Sets the hostname of the machine."
|
description="Sets the hostname of the machine."
|
||||||
|
|
||||||
depend() {
|
depend() {
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ depend()
|
|||||||
else
|
else
|
||||||
before *
|
before *
|
||||||
fi
|
fi
|
||||||
keyword noopenvz noprefix nouml novserver noxenu
|
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
setupopts()
|
setupopts()
|
||||||
@@ -118,7 +118,7 @@ stop()
|
|||||||
|
|
||||||
if ! yesno $clock_adjfile; then
|
if ! yesno $clock_adjfile; then
|
||||||
# Some implementations don't handle adjustments
|
# Some implementations don't handle adjustments
|
||||||
if LC_ALL=C hwclock --help | grep -q "\-\-noadjfile"; then
|
if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
|
||||||
utc_cmd="$utc_cmd --noadjfile"
|
utc_cmd="$utc_cmd --noadjfile"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ opts="panic showstatus"
|
|||||||
depend() {
|
depend() {
|
||||||
before net
|
before net
|
||||||
provide firewall
|
provide firewall
|
||||||
keyword nojail
|
keyword -jail
|
||||||
}
|
}
|
||||||
|
|
||||||
ipfw() {
|
ipfw() {
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ depend()
|
|||||||
{
|
{
|
||||||
need localmount termencoding
|
need localmount termencoding
|
||||||
after bootmisc
|
after bootmisc
|
||||||
keyword noopenvz noprefix nouml novserver noxenu
|
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
|
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
|
||||||
: ${unicode:=$UNICODE}
|
: ${unicode:=$UNICODE}
|
||||||
: =${keymap:=$KEYMAP}
|
: ${keymap:=$KEYMAP}
|
||||||
: ${extended_keymaps:=$EXTENDED_KEYMAPS}
|
: ${extended_keymaps:=$EXTENDED_KEYMAPS}
|
||||||
: ${windowkeys:=$SET_WINDOWSKEYS}
|
: ${windowkeys:=$SET_WINDOWSKEYS}
|
||||||
: ${fix_euro:=$FIX_EURO}
|
: ${fix_euro:=$FIX_EURO}
|
||||||
@@ -34,15 +34,25 @@ start()
|
|||||||
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
|
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ebegin "Loading key mappings [$keymap]"
|
local wkeys= kmode="-a" msg="ASCII"
|
||||||
local loadkeys_uni= wkeys= kmode="-a" msg="ASCII"
|
|
||||||
if yesno $unicode; then
|
if yesno $unicode; then
|
||||||
loadkeys_uni="--unicode"
|
|
||||||
kmode="-u"
|
kmode="-u"
|
||||||
msg="UTF-8"
|
msg="UTF-8"
|
||||||
fi
|
fi
|
||||||
yesno $windowkeys && wkeys="windowkeys"
|
yesno $windowkeys && wkeys="windowkeys"
|
||||||
loadkeys -q $loadkeys_uni $wkeys $keymap $extended_keymaps
|
|
||||||
|
# Set terminal encoding to either ASCII or UNICODE.
|
||||||
|
# See utf-8(7) for more information.
|
||||||
|
ebegin "Setting keyboard mode [$msg]"
|
||||||
|
n=1
|
||||||
|
while [ $n -le $ttyn ]; do
|
||||||
|
kbd_mode $kmode -C $ttydev$n
|
||||||
|
n=$(($n + 1))
|
||||||
|
done
|
||||||
|
eend 0
|
||||||
|
|
||||||
|
ebegin "Loading key mappings [$keymap]"
|
||||||
|
loadkeys -q $wkeys $keymap $extended_keymaps
|
||||||
eend $? "Error loading key mappings" || return $?
|
eend $? "Error loading key mappings" || return $?
|
||||||
|
|
||||||
if yesno $fix_euro; then
|
if yesno $fix_euro; then
|
||||||
@@ -52,20 +62,6 @@ start()
|
|||||||
eend $?
|
eend $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set terminal encoding to either ASCII or UNICODE.
|
|
||||||
# See utf-8(7) for more information.
|
|
||||||
ebegin "Setting keyboard mode [$msg]"
|
|
||||||
if yesno $unicode; then
|
|
||||||
dumpkeys ${dumpkeys_charset:+-c} \
|
|
||||||
$dumpkeys_charset | loadkeys --unicode
|
|
||||||
fi
|
|
||||||
n=1
|
|
||||||
while [ $n -le $ttyn ]; do
|
|
||||||
kbd_mode $kmode -C $ttydev$n
|
|
||||||
n=$(($n + 1))
|
|
||||||
done
|
|
||||||
eend 0
|
|
||||||
|
|
||||||
# Save the keymapping for use immediately at boot
|
# Save the keymapping for use immediately at boot
|
||||||
if [ -w "$RC_LIBEXECDIR" ]; then
|
if [ -w "$RC_LIBEXECDIR" ]; then
|
||||||
mkdir -p "$RC_LIBEXECDIR"/console
|
mkdir -p "$RC_LIBEXECDIR"/console
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ description="Kill all processes so we can unmount disks cleanly."
|
|||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ description="Executes user commands in /etc/conf.d/local"
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
after *
|
after *
|
||||||
keyword notimeout
|
keyword -timeout
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
@@ -18,11 +18,6 @@ start()
|
|||||||
local_start
|
local_start
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Support old configs
|
|
||||||
if [ -e @SYSCONFDIR@/conf.d/local.start ]; then
|
|
||||||
. @SYSCONFDIR@/conf.d/local.start
|
|
||||||
fi
|
|
||||||
|
|
||||||
eend $? "Failed to start local"
|
eend $? "Failed to start local"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,10 +29,5 @@ stop()
|
|||||||
local_stop
|
local_stop
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Support old configs
|
|
||||||
if [ -e @SYSCONFDIR@/conf.d/local.stop ]; then
|
|
||||||
. @SYSCONFDIR@/conf.d/local.stop
|
|
||||||
fi
|
|
||||||
|
|
||||||
eend $? "Failed to stop local"
|
eend $? "Failed to stop local"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,19 +8,22 @@ depend()
|
|||||||
{
|
{
|
||||||
need fsck
|
need fsck
|
||||||
use lvm modules mtab
|
use lvm modules mtab
|
||||||
keyword nojail noopenvz noprefix novserver
|
keyword -jail -openvz -prefix -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
# Mount local filesystems in /etc/fstab.
|
# Mount local filesystems in /etc/fstab.
|
||||||
local types="noproc" x=
|
local types="noproc" x= no_netdev=
|
||||||
for x in $net_fs_list; do
|
for x in $net_fs_list; do
|
||||||
types="${types},${x}"
|
types="${types},${x}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ "$RC_UNAME" = Linux ]; then
|
||||||
|
no_netdev="-O no_netdev"
|
||||||
|
fi
|
||||||
ebegin "Mounting local filesystems"
|
ebegin "Mounting local filesystems"
|
||||||
mount -at "$types"
|
mount -at "$types" $no_netdev
|
||||||
eend $? "Some local filesystem failed to mount"
|
eend $? "Some local filesystem failed to mount"
|
||||||
|
|
||||||
# Always return 0 - some local mounts may not be critical for boot
|
# Always return 0 - some local mounts may not be critical for boot
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ extra_commands="restore"
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
restore()
|
restore()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules."
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
use isapnp
|
use isapnp
|
||||||
keyword noopenvz noprefix novserver
|
keyword -openvz -prefix -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ description="Re-mount filesytems read-only for a clean reboot."
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need killprocs savecache
|
need killprocs savecache
|
||||||
keyword noprefix noopenvz novserver
|
keyword -prefix -openvz -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ depend()
|
|||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
after bootmisc
|
after bootmisc
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -7,11 +7,17 @@ description="Update /etc/mtab to match what the kernel knows about"
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need root
|
need root
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
|
# /etc/mtab could be a symlink to /proc/mounts
|
||||||
|
if [ ! -w /etc/mtab -a -L /etc/mtab ]; then
|
||||||
|
eeinfo "Skipping mtab update (non writeable symlink)"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
ebegin "Updating /etc/mtab"
|
ebegin "Updating /etc/mtab"
|
||||||
if ! echo 2>/dev/null >/etc/mtab; then
|
if ! echo 2>/dev/null >/etc/mtab; then
|
||||||
ewend 1 "/etc/mtab is not updateable"
|
ewend 1 "/etc/mtab is not updateable"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ depend()
|
|||||||
need localmount
|
need localmount
|
||||||
after bootmisc
|
after bootmisc
|
||||||
provide net
|
provide net
|
||||||
keyword nojail noprefix novserver
|
keyword -jail -prefix -vserver
|
||||||
|
|
||||||
case "${IFACE}" in
|
case "${IFACE}" in
|
||||||
lo|lo0);;
|
lo|lo0);;
|
||||||
|
|||||||
@@ -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 nojail noprefix novserver
|
keyword -jail -prefix -vserver
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ depend()
|
|||||||
need localmount
|
need localmount
|
||||||
after bootmisc
|
after bootmisc
|
||||||
provide net
|
provide net
|
||||||
keyword nojail noprefix novserver
|
keyword -jail -prefix -vserver
|
||||||
}
|
}
|
||||||
|
|
||||||
uniqify()
|
uniqify()
|
||||||
@@ -57,6 +57,32 @@ sys_interfaces()
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tentative()
|
||||||
|
{
|
||||||
|
local inet= address= rest=
|
||||||
|
|
||||||
|
case "$RC_UNAME" in
|
||||||
|
Linux)
|
||||||
|
[ -x /sbin/ip ] || [ -x /bin/ip ] || return 1
|
||||||
|
[ -n "$(ip -f inet6 addr show tentative)" ]
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
local inet= address= rest=
|
||||||
|
LC_ALL=C ifconfig -a | while read inet address rest; do
|
||||||
|
case "${inet}" in
|
||||||
|
inet6)
|
||||||
|
case "${rest}" in
|
||||||
|
*" "tentative*) return 2;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
[ $? = 2 ]
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
auto_interfaces()
|
auto_interfaces()
|
||||||
{
|
{
|
||||||
local ifs= c= f=
|
local ifs= c= f=
|
||||||
@@ -103,13 +129,28 @@ dumpargs()
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
intup=false
|
||||||
runip()
|
runip()
|
||||||
{
|
{
|
||||||
local int="$1" err=
|
local int="$1" err=
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
|
# Ensure we have a valid broadcast address
|
||||||
|
case "$@" in
|
||||||
|
*" broadcast "*|*" brd "*) ;;
|
||||||
|
*:*) ;; # Ignore IPv6
|
||||||
|
*) set -- "$@" brd +;;
|
||||||
|
esac
|
||||||
|
|
||||||
err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
|
err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
|
||||||
[ -z "$err" ] && return 0
|
if [ -z "$err" ]; then
|
||||||
|
# ip does not bring up the interface when adding addresses
|
||||||
|
if ! $intup; then
|
||||||
|
ip link set "$int" up
|
||||||
|
intup=true
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
if [ "$err" = "RTNETLINK answers: File exists" ]; then
|
if [ "$err" = "RTNETLINK answers: File exists" ]; then
|
||||||
ip address del "$@" dev "$int" 2>/dev/null
|
ip address del "$@" dev "$int" 2>/dev/null
|
||||||
fi
|
fi
|
||||||
@@ -120,8 +161,9 @@ runip()
|
|||||||
routeflush()
|
routeflush()
|
||||||
{
|
{
|
||||||
if [ "$RC_UNAME" = Linux ]; then
|
if [ "$RC_UNAME" = Linux ]; then
|
||||||
if [ -x /sbin/ip ]; then
|
if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
|
||||||
ip route flush scope global
|
ip route flush scope global
|
||||||
|
ip route delete default 2>/dev/null
|
||||||
else
|
else
|
||||||
# Sadly we also delete some link routes, but
|
# Sadly we also delete some link routes, but
|
||||||
# this cannot be helped
|
# this cannot be helped
|
||||||
@@ -141,6 +183,8 @@ routeflush()
|
|||||||
esac
|
esac
|
||||||
route del $flags $dest $netmask $xtra
|
route del $flags $dest $netmask $xtra
|
||||||
done
|
done
|
||||||
|
# Erase any default dev eth0 routes
|
||||||
|
route del default 2>/dev/null
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
route -qn flush
|
route -qn flush
|
||||||
@@ -165,12 +209,20 @@ runargs()
|
|||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
local cr=0 r= int= intv= cmd= args= upcmd=
|
local cr=0 r= int= intv= cmd= args= upcmd=
|
||||||
|
|
||||||
|
if [ -z "$domainname" -a -s /etc/defaultdomain ]; then
|
||||||
|
domainname=$(cat /etc/defaultdomain)
|
||||||
|
fi
|
||||||
|
if [ -n "$domainname" ]; then
|
||||||
|
ebegin "Setting NIS domainname: $domainname"
|
||||||
|
domainname "$domainname"
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
|
||||||
einfo "Starting network"
|
einfo "Starting network"
|
||||||
routeflush
|
routeflush
|
||||||
if [ "$RC_UNAME" = "Linux" ]; then
|
if [ "$RC_UNAME" = "Linux" ]; then
|
||||||
ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1
|
ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1
|
||||||
route add -net 127.0.0.0 netmask 255.0.0.0 \
|
|
||||||
gw 127.0.0.1 2>/dev/null
|
|
||||||
route add -net 127.0.0.0 netmask 255.0.0.0 \
|
route add -net 127.0.0.0 netmask 255.0.0.0 \
|
||||||
gw 127.0.0.1 reject 2>/dev/null
|
gw 127.0.0.1 reject 2>/dev/null
|
||||||
else
|
else
|
||||||
@@ -194,7 +246,7 @@ start()
|
|||||||
-f /etc/ifup."$int" -o -f "$cf" ] || continue
|
-f /etc/ifup."$int" -o -f "$cf" ] || continue
|
||||||
veinfo "$int"
|
veinfo "$int"
|
||||||
case "$func" in
|
case "$func" in
|
||||||
ip) func=runip;;
|
ip) func=runip; intup=false;;
|
||||||
esac
|
esac
|
||||||
eindent
|
eindent
|
||||||
runargs /etc/ifup."$int" "$upcmd"
|
runargs /etc/ifup."$int" "$upcmd"
|
||||||
@@ -223,13 +275,41 @@ start()
|
|||||||
eoutdent
|
eoutdent
|
||||||
eend $cr
|
eend $cr
|
||||||
|
|
||||||
|
# Wait for any inet6 tentative addresses
|
||||||
|
r=5
|
||||||
|
while [ $r -gt 0 ]; do
|
||||||
|
tentative || break
|
||||||
|
[ $r = 5 ] && vebegin "Waiting for tentative addresses"
|
||||||
|
sleep 1
|
||||||
|
r=$(($r - 1))
|
||||||
|
done
|
||||||
|
if [ $r != 5 ]; then
|
||||||
|
[ $r != 0 ]
|
||||||
|
veend $?
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$defaultroute" ]; then
|
if [ -n "$defaultroute" ]; then
|
||||||
ebegin "Setting default route $defaultroute"
|
ebegin "Setting default route $defaultroute"
|
||||||
|
route add default $defaultroute
|
||||||
|
eend $?
|
||||||
|
elif [ -n "$defaultiproute" ]; then
|
||||||
|
ebegin "Setting default route $defaultiproute"
|
||||||
|
ip route add default $defaultiproute
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$defaultroute6" ]; then
|
||||||
|
ebegin "Setting default route $defaultroute6"
|
||||||
if [ "$RC_UNAME" = Linux ]; then
|
if [ "$RC_UNAME" = Linux ]; then
|
||||||
route add default gw $defaultroute
|
routecmd="route -A inet6 add"
|
||||||
else
|
else
|
||||||
route add default $defaultroute
|
routecmd="route -inet6 add"
|
||||||
fi
|
fi
|
||||||
|
$routecmd default $defaultroute6
|
||||||
|
eend $?
|
||||||
|
elif [ -n "$defaultiproute6" ]; then
|
||||||
|
ebegin "Setting default route $defaultiproute6"
|
||||||
|
ip -f inet6 route add default $defaultiproute6
|
||||||
eend $?
|
eend $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -258,6 +338,11 @@ stop()
|
|||||||
then
|
then
|
||||||
veinfo "$int"
|
veinfo "$int"
|
||||||
runargs /etc/ifdown."$int" "$downcmd"
|
runargs /etc/ifdown."$int" "$downcmd"
|
||||||
|
if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
|
||||||
|
# We need to do this, otherwise we may
|
||||||
|
# fail to add things correctly on restart
|
||||||
|
ip address flush dev "$int" 2>/dev/null
|
||||||
|
fi
|
||||||
ifconfig "$int" down 2>/dev/null
|
ifconfig "$int" down 2>/dev/null
|
||||||
ifconfig "$int" destroy 2>/dev/null
|
ifconfig "$int" destroy 2>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ required_files="/etc/newsyslog.conf"
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
keyword noopenvz noprefix novserver
|
keyword -openvz -prefix -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
_setleds()
|
_setleds()
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ extra_started_commands="reload"
|
|||||||
|
|
||||||
depend() {
|
depend() {
|
||||||
need localmount
|
need localmount
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ depend()
|
|||||||
need localmount
|
need localmount
|
||||||
use logger
|
use logger
|
||||||
after bootmisc
|
after bootmisc
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start_pre()
|
start_pre()
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ depend()
|
|||||||
{
|
{
|
||||||
use modules devfs
|
use modules devfs
|
||||||
need localmount
|
need localmount
|
||||||
keyword noopenvz noprefix novserver
|
keyword -openvz -prefix -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
# Make sure we insert usbcore if its a module
|
# Make sure we insert usbcore if it's a module
|
||||||
if [ -f /proc/modules -a ! -d /proc/bus/usb ]; then
|
if [ -f /proc/modules -a ! -d /proc/bus/usb ]; then
|
||||||
modprobe -q usbcore
|
modprobe -q usbcore
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ depend()
|
|||||||
need localmount net
|
need localmount net
|
||||||
after *
|
after *
|
||||||
before local
|
before local
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ description="Mount the root fs read/write"
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need fsck
|
need fsck
|
||||||
keyword nojail noopenvz noprefix novserver
|
keyword -jail -openvz -prefix -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ start()
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
local save=
|
local save=
|
||||||
for x in deptree depconfig softlevel nettree rc.log; do
|
for x in deptree depconfig shutdowntime softlevel nettree rc.log; do
|
||||||
[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x"
|
[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x"
|
||||||
done
|
done
|
||||||
if [ -n "$save" ]; then
|
if [ -n "$save" ]; then
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ description="Saves a kernel dump."
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
104
init.d/staticroute.in
Normal file
104
init.d/staticroute.in
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
#!@PREFIX@/sbin/runscript
|
||||||
|
# Copyright (c) 2009 Roy Marples <roy@marples.name>
|
||||||
|
# All rights reserved. Released under the 2-clause BSD license.
|
||||||
|
|
||||||
|
# This script was inspired by the equivalent rc.d staticroute from NetBSD.
|
||||||
|
|
||||||
|
description="Configures static routes."
|
||||||
|
__nl="
|
||||||
|
"
|
||||||
|
|
||||||
|
depend()
|
||||||
|
{
|
||||||
|
provide net
|
||||||
|
use network
|
||||||
|
keyword -jail -prefix -vserver
|
||||||
|
}
|
||||||
|
|
||||||
|
pre_flight_checks()
|
||||||
|
{
|
||||||
|
route=route
|
||||||
|
[ -s /etc/route.conf ] && return 0
|
||||||
|
|
||||||
|
if [ -n "$staticiproute" ]; then
|
||||||
|
route="ip route"
|
||||||
|
staticroute="$staticiproute"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
dump_args()
|
||||||
|
{
|
||||||
|
# Route configuration file, as used by the NetBSD RC system
|
||||||
|
if [ -s /etc/route.conf ]; then
|
||||||
|
cat /etc/route.conf
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$staticroute" in
|
||||||
|
*"$__nl"*)
|
||||||
|
echo "$staticroute"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
(
|
||||||
|
set -o noglob
|
||||||
|
IFS=';'; set -- $staticroute
|
||||||
|
IFS="$__nl"; echo "$*"
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
do_routes()
|
||||||
|
{
|
||||||
|
local xtra= family=
|
||||||
|
[ "$RC_UNAME" != Linux ] && xtra=-q
|
||||||
|
|
||||||
|
ebegin "$1 static routes"
|
||||||
|
eindent
|
||||||
|
pre_flight_checks
|
||||||
|
dump_args | while read args; do
|
||||||
|
[ -z "$args" ] && continue
|
||||||
|
case "$args" in
|
||||||
|
"#"*)
|
||||||
|
;;
|
||||||
|
"+"*)
|
||||||
|
[ $2 = "add" ] && eval ${args#*+}
|
||||||
|
;;
|
||||||
|
"-"*)
|
||||||
|
[ $2 = "del" -o $2 = "delete" ] && eval ${args#*-}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
veinfo "$args"
|
||||||
|
case "$route" in
|
||||||
|
"ip route")
|
||||||
|
ip route $2 $args
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Linux route does cannot work it out ...
|
||||||
|
if [ "$RC_UNAME" = Linux ]; then
|
||||||
|
case "$args" in
|
||||||
|
*:*) family="-A inet6";;
|
||||||
|
*) family=;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
route $famly $xtra $2 -$args
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
veend $?
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
eoutdent
|
||||||
|
eend 0
|
||||||
|
}
|
||||||
|
|
||||||
|
start()
|
||||||
|
{
|
||||||
|
do_routes "Adding" "add"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop()
|
||||||
|
{
|
||||||
|
local cmd="delete"
|
||||||
|
[ "$RC_UNAME" = Linux ] && cmd="del"
|
||||||
|
do_routes "Deleting" "$cmd"
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
before fsck
|
before fsck
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
keyword nojail noopenvz noprefix novserver
|
keyword -jail -openvz -prefix -vserver -lxc
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
28
init.d/swclock.in
Normal file
28
init.d/swclock.in
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!@PREFIX@/sbin/runscript
|
||||||
|
# Copyright (c) 2009 Roy Marples <roy@marples.name>
|
||||||
|
# All rights reserved. Released under the 2-clause BSD license.
|
||||||
|
|
||||||
|
description="Sets the local clock to the mtime of a given file."
|
||||||
|
|
||||||
|
depend()
|
||||||
|
{
|
||||||
|
before *
|
||||||
|
provide clock
|
||||||
|
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||||
|
}
|
||||||
|
|
||||||
|
# swclock is an OpenRC built in
|
||||||
|
|
||||||
|
start()
|
||||||
|
{
|
||||||
|
ebegin "Setting the local clock based on last shutdown time"
|
||||||
|
swclock --warn
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
stop()
|
||||||
|
{
|
||||||
|
ebegin "Saving the shutdown time"
|
||||||
|
swclock --save
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
depend() {
|
depend() {
|
||||||
need localmount
|
need localmount
|
||||||
keyword nojail noprefix
|
keyword -jail -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
|
|||||||
@@ -4,21 +4,28 @@
|
|||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
use hostname
|
|
||||||
before bootmisc logger
|
before bootmisc logger
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
[ -e /etc/sysctl.conf ] || return 0
|
[ -e /etc/sysctl.conf ] || return 0
|
||||||
local retval=0 var= comments=
|
local retval=0 var= comments= conf=
|
||||||
ebegin "Configuring kernel parameters"
|
ebegin "Configuring kernel parameters"
|
||||||
while read var comments; do
|
eindent
|
||||||
case "$var" in
|
for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do
|
||||||
""|"#"*) continue;;
|
if [ -r "$conf" ]; then
|
||||||
esac
|
vebegin "applying $conf"
|
||||||
sysctl -w "$var" >/dev/null || retval=1
|
while read var comments; do
|
||||||
done < /etc/sysctl.conf
|
case "$var" in
|
||||||
|
""|"#"*) continue;;
|
||||||
|
esac
|
||||||
|
sysctl -w "$var" >/dev/null || retval=1
|
||||||
|
done < "$conf"
|
||||||
|
veend $retval
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
eoutdent
|
||||||
eend $retval "Some errors were encountered"
|
eend $retval "Some errors were encountered"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,15 +4,22 @@
|
|||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
use hostname
|
|
||||||
before bootmisc logger
|
before bootmisc logger
|
||||||
keyword noopenvz noprefix novserver
|
keyword -openvz -prefix -vserver
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
[ -e /etc/sysctl.conf ] || return 0
|
local conf= retval=0
|
||||||
ebegin "Configuring kernel parameters"
|
ebegin "Configuring kernel parameters"
|
||||||
sysctl -p >/dev/null
|
eindent
|
||||||
eend $? "Some errors were encountered"
|
for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do
|
||||||
|
if [ -r "$conf" ]; then
|
||||||
|
vebegin "applying $conf"
|
||||||
|
sysctl -p "$conf" >/dev/null
|
||||||
|
veend $? || retval=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
eoutdent
|
||||||
|
eend $retval "Some errors were encountered"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ description="Mount the sys filesystem."
|
|||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
keyword noprefix novserver
|
keyword -prefix -vserver
|
||||||
}
|
}
|
||||||
|
|
||||||
mount_sys()
|
mount_sys()
|
||||||
|
|||||||
@@ -16,5 +16,5 @@ depend()
|
|||||||
use net newsyslog
|
use net newsyslog
|
||||||
need localmount
|
need localmount
|
||||||
after bootmisc
|
after bootmisc
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
|
|||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
keyword noopenvz noprefix nouml novserver noxenu
|
keyword -openvz -prefix -uml -vserver -xenu
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
after fsck
|
after fsck
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ description="Initializes the random number generator."
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
keyword nojail noprefix
|
keyword -jail -openvz -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
save_seed()
|
save_seed()
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
need localmount
|
need localmount
|
||||||
keyword noprefix
|
keyword -prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
.Nm eprefix
|
.Nm eprefix
|
||||||
.Nd colorful informational output
|
.Nd colorful informational output
|
||||||
.Sh LIBRARY
|
.Sh LIBRARY
|
||||||
Enhanced Informatation output library (libeinfo, -leinfo)
|
Enhanced Information output library (libeinfo, -leinfo)
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.In einfo.h
|
.In einfo.h
|
||||||
.Ft int Fn einfo "const char * restrict format" ...
|
.Ft int Fn einfo "const char * restrict format" ...
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
.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 unassgined 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
|
||||||
The options are as follows:
|
The options are as follows:
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ owned by
|
|||||||
.Fa uid ,
|
.Fa uid ,
|
||||||
all of which are optional.
|
all of which are optional.
|
||||||
.Pp
|
.Pp
|
||||||
The retuned list should be freed when done.
|
The returned list should be freed when done.
|
||||||
.Sh IMPLEMENTATION NOTES
|
.Sh IMPLEMENTATION NOTES
|
||||||
On BSD systems we use
|
On BSD systems we use
|
||||||
.Lb libkvm
|
.Lb libkvm
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ is set to the hook running, and
|
|||||||
.Fa name
|
.Fa name
|
||||||
is set to the name of the runlevel or name of the service.
|
is set to the name of the runlevel or name of the service.
|
||||||
.Pp
|
.Pp
|
||||||
Plugins can affect the parent environemnt by writing NULL separated strings to
|
Plugins can affect the parent environment by writing NULL separated strings to
|
||||||
.Va rc_environ_fd .
|
.Va rc_environ_fd .
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr rc 8 ,
|
.Xr rc 8 ,
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
.\" 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 April 30, 2009
|
.Dd November 4, 2009
|
||||||
.Dt RUNSCRIPT 8 SMM
|
.Dt RUNSCRIPT 8 SMM
|
||||||
.Os OpenRC
|
.Os OpenRC
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -39,8 +39,8 @@
|
|||||||
.Nm
|
.Nm
|
||||||
is basically an interpreter for shell scripts which provide an easy interface
|
is basically an interpreter for shell scripts which provide an easy interface
|
||||||
to the often complex system commands and daemons.
|
to the often complex system commands and daemons.
|
||||||
When a service runs a command it first loads it's mulitplexed configuration
|
When a service runs a command it first loads its multiplexed configuration
|
||||||
file, then it's master configuration file, then
|
file, then its master configuration file, then
|
||||||
.Pa /etc/rc.conf
|
.Pa /etc/rc.conf
|
||||||
and finally the script itself. At this point
|
and finally the script itself. At this point
|
||||||
.Nm
|
.Nm
|
||||||
@@ -79,7 +79,7 @@ Ignore all dependency information the service supplies.
|
|||||||
Only run the command if the service has been started.
|
Only run the command if the service has been started.
|
||||||
.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 comands is not affected.
|
Output from any non OpenRC commands is not affected.
|
||||||
.It Fl v , -verbose
|
.It Fl v , -verbose
|
||||||
Turns on any extra informational output the service generates.
|
Turns on any extra informational output the service generates.
|
||||||
.It Fl Z , -dry-run
|
.It Fl Z , -dry-run
|
||||||
@@ -90,9 +90,9 @@ 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 seperated list of extra commands the service defines.
|
Space separated list of extra commands the service defines.
|
||||||
.It Ar extra_started_commands
|
.It Ar extra_started_commands
|
||||||
Space seperated 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 description
|
.It Ar description
|
||||||
String describing the service.
|
String describing the service.
|
||||||
@@ -128,7 +128,7 @@ will refuse to stop until any services that need it have stopped.
|
|||||||
The service will attempt to start any services we use that have been added
|
The service will attempt to start any services we use that have been added
|
||||||
to the runlevel.
|
to the runlevel.
|
||||||
.It Ic after
|
.It Ic after
|
||||||
The service will start after thse services and stop before these services.
|
The service will start after these services and stop before these services.
|
||||||
.It Ic before
|
.It Ic before
|
||||||
The service will start before these services and stop after these services.
|
The service will start before these services and stop after these services.
|
||||||
.It Ic provide
|
.It Ic provide
|
||||||
@@ -138,30 +138,32 @@ We should recalculate our dependencies if the listed files have changed.
|
|||||||
.It Ic keyword
|
.It Ic keyword
|
||||||
Tags a service with a keyword. Here's the keywords we currently understand:-
|
Tags a service with a keyword. Here's the keywords we currently understand:-
|
||||||
.Bl -tag -width indent
|
.Bl -tag -width indent
|
||||||
.It Dv nojail
|
.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.
|
still be run directly.
|
||||||
.It Dv noopenvz
|
.It Dv -openvz
|
||||||
Same as nojail, but for OpenVZ systems.
|
Same as -jail, but for OpenVZ systems.
|
||||||
.It Dv noshutdown
|
.It Dv -lxc
|
||||||
|
Same as -jail, but for Linux Resource Containers (LXC).
|
||||||
|
.It Dv -shutdown
|
||||||
Don't stop this service when shutting the system down.
|
Don't stop this service when shutting the system down.
|
||||||
This 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.
|
||||||
.It Dv nostop
|
.It Dv -stop
|
||||||
Don't stop this service when changing runlevels, even if not present.
|
Don't stop this service when changing runlevels, even if not present.
|
||||||
This includes shutting the system down.
|
This includes shutting the system down.
|
||||||
.It Dv notimeout
|
.It Dv -timeout
|
||||||
Do not time out waiting for that service.
|
Do not time out waiting for that service.
|
||||||
.It Dv nouml
|
.It Dv -uml
|
||||||
Same as nojail, but for UML systems.
|
Same as -jail, but for UML systems.
|
||||||
.It Dv novserver
|
.It Dv -vserver
|
||||||
Same as nojail, but for VServer systems.
|
Same as -jail, but for VServer systems.
|
||||||
.It Dv noxen0
|
.It Dv -xen0
|
||||||
Same as nojail, but for Xen DOM0 systems.
|
Same as -jail, but for Xen DOM0 systems.
|
||||||
.It Dv noxenu
|
.It Dv -xenu
|
||||||
Same as nojail, but for Xen DOMU systems.
|
Same as -jail, but for Xen DOMU systems.
|
||||||
.El
|
.El
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
@@ -223,7 +225,7 @@ is newer than
|
|||||||
return 0, otherwise 1.
|
return 0, otherwise 1.
|
||||||
If
|
If
|
||||||
.Ar file2
|
.Ar file2
|
||||||
is a directory, then check all it's contents too.
|
is a directory, then check all its contents too.
|
||||||
.It Ic is_older_than Ar file1 Ar file2 ...
|
.It Ic is_older_than Ar file1 Ar file2 ...
|
||||||
If
|
If
|
||||||
.Ar file1
|
.Ar file1
|
||||||
@@ -232,7 +234,7 @@ is newer than
|
|||||||
return 0, otherwise 1.
|
return 0, otherwise 1.
|
||||||
If
|
If
|
||||||
.Ar file2
|
.Ar file2
|
||||||
is a directory, then check all it's contents too.
|
is a directory, then check all its contents too.
|
||||||
.It Ic service_set_value Ar name Ar value
|
.It Ic service_set_value Ar name Ar value
|
||||||
Saves the
|
Saves the
|
||||||
.Ar name
|
.Ar name
|
||||||
@@ -318,7 +320,7 @@ Configuration files, relative to the location of the service.
|
|||||||
If a file ending with .${RC_RUNLEVEL} exists then we use that instead.
|
If a file ending with .${RC_RUNLEVEL} exists then we use that instead.
|
||||||
.Bl -ohang
|
.Bl -ohang
|
||||||
.It Pa ../conf.d/${RC_SVCNAME%%.*}
|
.It Pa ../conf.d/${RC_SVCNAME%%.*}
|
||||||
mulitplexed configuration file.
|
multiplexed configuration file.
|
||||||
Example: if ${RC_SVCNAME} is net.eth1 then look for
|
Example: if ${RC_SVCNAME} is net.eth1 then look for
|
||||||
.Pa ../conf.d/net .
|
.Pa ../conf.d/net .
|
||||||
.It Pa ../conf.d/${RC_SVCNAME}
|
.It Pa ../conf.d/${RC_SVCNAME}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
.\" 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 April 22, 2009
|
.Dd December 14, 2009
|
||||||
.Dt START-STOP-DAEMON 8 SMM
|
.Dt START-STOP-DAEMON 8 SMM
|
||||||
.Os OpenRC
|
.Os OpenRC
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
.Ar daemon
|
.Ar daemon
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
.Nm
|
.Nm
|
||||||
provides a consistent method of starting, stopping and signalling daemons.
|
provides a consistent method of starting, stopping and signaling daemons.
|
||||||
If neither
|
If neither
|
||||||
.Fl K , -stop
|
.Fl K , -stop
|
||||||
nor
|
nor
|
||||||
@@ -85,7 +85,7 @@ then
|
|||||||
.Nm
|
.Nm
|
||||||
matches the process
|
matches the process
|
||||||
.D1 /usr/bin/perl -w foo
|
.D1 /usr/bin/perl -w foo
|
||||||
If an interpreted daemon changes it's process name then this won't work.
|
If an interpreted daemon changes its process name then this won't work.
|
||||||
.It Fl u , -user Ar user Ns Op : Ns Ar group
|
.It Fl u , -user Ar user Ns Op : Ns Ar group
|
||||||
Start the daemon as the
|
Start the daemon as the
|
||||||
.Ar user
|
.Ar user
|
||||||
@@ -98,6 +98,8 @@ Print the action(s) that would be taken, but don't actually do anything.
|
|||||||
The return value is set as if the command was taken and worked.
|
The return value is set as if the command was taken and worked.
|
||||||
.It Fl v , -verbose
|
.It Fl v , -verbose
|
||||||
Print the action(s) that are taken just before doing them.
|
Print the action(s) that are taken just before doing them.
|
||||||
|
.It Fl P , -progress
|
||||||
|
Echo a . to the console for each second elapsed whilst waiting.
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
These options are only used for starting daemons:
|
These options are only used for starting daemons:
|
||||||
@@ -134,6 +136,10 @@ option. Only useful when used with daemons that run in the foreground and
|
|||||||
forced into the background with the
|
forced into the background with the
|
||||||
.Fl -b , -background
|
.Fl -b , -background
|
||||||
option.
|
option.
|
||||||
|
.It Fl I , -ionice Ar class Ns Op : Ns Ar data
|
||||||
|
Modifies the IO scheduling priority of the daemon.
|
||||||
|
Class can be 0 for none, 1 for real time, 2 for best effort and 3 for idle.
|
||||||
|
Data can be from 0 to 7 inclusive.
|
||||||
.It Fl N , -nice Ar level
|
.It Fl N , -nice Ar level
|
||||||
Modifies the scheduling priority of the daemon.
|
Modifies the scheduling priority of the daemon.
|
||||||
.It Fl 1 , -stdout Ar logfile
|
.It Fl 1 , -stdout Ar logfile
|
||||||
@@ -142,9 +148,9 @@ Redirect the standard output of the process to logfile when started with
|
|||||||
Must be an absolute pathname, but relative to the path optionally given with
|
Must be an absolute pathname, but relative to the path optionally given with
|
||||||
.Fl r , -chroot .
|
.Fl r , -chroot .
|
||||||
The logfile can also be a named pipe.
|
The logfile can also be a named pipe.
|
||||||
.It Fl w , -wait Ar seconds
|
.It Fl w , -wait Ar milliseconds
|
||||||
Wait
|
Wait
|
||||||
.Ar seconds
|
.Ar milliseconds
|
||||||
after starting and check that daemon is still running.
|
after starting and check that daemon is still running.
|
||||||
Useful for daemons that check configuration after forking or stopping race
|
Useful for daemons that check configuration after forking or stopping race
|
||||||
conditions where the pidfile is written out after forking.
|
conditions where the pidfile is written out after forking.
|
||||||
|
|||||||
@@ -15,7 +15,14 @@ _is_bond()
|
|||||||
|
|
||||||
bonding_pre_start()
|
bonding_pre_start()
|
||||||
{
|
{
|
||||||
local x= s= slaves="$(_get_array "slaves_${IFVAR}")"
|
local x= s= n= slaves= primary=
|
||||||
|
|
||||||
|
slaves="$(_get_array "slaves_${IFVAR}")"
|
||||||
|
unset slaves_${IFVAR}
|
||||||
|
|
||||||
|
eval primary="\$primary_${IFVAR}"
|
||||||
|
unset primary_${IFVAR}
|
||||||
|
|
||||||
|
|
||||||
[ -z "${slaves}" ] && return 0
|
[ -z "${slaves}" ] && return 0
|
||||||
|
|
||||||
@@ -39,13 +46,31 @@ bonding_pre_start()
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure the bond.
|
# Interface must be down in order to configure
|
||||||
# Nice and dynamic :)
|
_down
|
||||||
|
|
||||||
|
# Configure the bond mode, then we can reloop to ensure we configure
|
||||||
|
# All other options
|
||||||
|
for x in /sys/class/net/"${IFACE}"/bonding/mode; do
|
||||||
|
[ -f "${x}" ] || continue
|
||||||
|
n=${x##*/}
|
||||||
|
eval s=\$${n}_${IFVAR}
|
||||||
|
if [ -n "${s}" ]; then
|
||||||
|
einfo "Setting ${n}: ${s}"
|
||||||
|
echo "${s}" >"${x}" || \
|
||||||
|
eerror "Failed to configure $n (${n}_${IFVAR})"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Nice and dynamic for remaining options:)
|
||||||
for x in /sys/class/net/"${IFACE}"/bonding/*; do
|
for x in /sys/class/net/"${IFACE}"/bonding/*; do
|
||||||
[ -f "${x}" ] || continue
|
[ -f "${x}" ] || continue
|
||||||
eval s=\$${x##*/}_${IFVAR}
|
n=${x##*/}
|
||||||
|
eval s=\$${n}_${IFVAR}
|
||||||
|
[ "${n}" != "mode" ] || continue
|
||||||
if [ -n "${s}" ]; then
|
if [ -n "${s}" ]; then
|
||||||
echo "${s}" >"${x}"
|
einfo "Setting ${n}: ${s}"
|
||||||
|
echo "${s}" >"${x}" || \
|
||||||
|
eerror "Failed to configure $n (${n}_${IFVAR})"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -72,6 +97,11 @@ bonding_pre_start()
|
|||||||
# finally add in slaves
|
# finally add in slaves
|
||||||
eoutdent
|
eoutdent
|
||||||
if [ -d /sys/class/net ]; then
|
if [ -d /sys/class/net ]; then
|
||||||
|
if [ -n "${primary}" ]; then
|
||||||
|
echo "+${primary}" >/sys/class/net/"${IFACE}"/bonding/slaves
|
||||||
|
echo "${primary}" >/sys/class/net/"${IFACE}"/bonding/primary
|
||||||
|
slaves="${slaves/${primary}/}"
|
||||||
|
fi
|
||||||
for s in ${slaves}; do
|
for s in ${slaves}; do
|
||||||
echo "+${s}" >/sys/class/net/"${IFACE}"/bonding/slaves
|
echo "+${s}" >/sys/class/net/"${IFACE}"/bonding/slaves
|
||||||
done
|
done
|
||||||
@@ -117,6 +147,12 @@ bonding_stop()
|
|||||||
done
|
done
|
||||||
)
|
)
|
||||||
|
|
||||||
|
_down
|
||||||
|
|
||||||
|
if [ -d /sys/class/net ]; then
|
||||||
|
echo "-${IFACE}" > /sys/class/net/bonding_masters
|
||||||
|
fi
|
||||||
|
|
||||||
eend 0
|
eend 0
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ _config_vars="$_config_vars bridge bridge_add brctl"
|
|||||||
|
|
||||||
_is_bridge()
|
_is_bridge()
|
||||||
{
|
{
|
||||||
brctl show 2>/dev/null | grep -q "^${IFACE}[[:space:]]"
|
# Ignore header line so as to allow for bridges named 'bridge'
|
||||||
|
brctl show 2>/dev/null | sed '1,1d' | grep -q "^${IFACE}[[:space:]]"
|
||||||
}
|
}
|
||||||
|
|
||||||
bridge_pre_start()
|
bridge_pre_start()
|
||||||
@@ -88,14 +89,16 @@ bridge_post_stop()
|
|||||||
if _is_bridge; then
|
if _is_bridge; then
|
||||||
ebegin "Destroying bridge ${IFACE}"
|
ebegin "Destroying bridge ${IFACE}"
|
||||||
_down
|
_down
|
||||||
|
# Ignore header line so as to allow for bridges named 'bridge'
|
||||||
ports="$(brctl show 2>/dev/null | \
|
ports="$(brctl show 2>/dev/null | \
|
||||||
sed -n -e '/^'"${IFACE}"'[[:space:]]/,/^\S/ { /^\('"${IFACE}"'[[:space:]]\|\t\)/s/^.*\t//p }')"
|
sed -n -e '1,1d' -e '/^'"${IFACE}"'[[:space:]]/,/^\S/ { /^\('"${IFACE}"'[[:space:]]\|\t\)/s/^.*\t//p }')"
|
||||||
delete=true
|
delete=true
|
||||||
iface=${IFACE}
|
iface=${IFACE}
|
||||||
eindent
|
eindent
|
||||||
else
|
else
|
||||||
# Work out if we're added to a bridge for removal or not
|
# Work out if we're added to a bridge for removal or not
|
||||||
eval set -- $(brctl show 2>/dev/null | sed -e "s/'/'\\\\''/g" -e "s/$/'/g" -e "s/^/'/g")
|
# Ignore header line so as to allow for bridges named 'bridge'
|
||||||
|
eval set -- $(brctl show 2>/dev/null | sed -e '1,1d' -e "s/'/'\\\\''/g" -e "s/$/'/g" -e "s/^/'/g")
|
||||||
local line=
|
local line=
|
||||||
for line; do
|
for line; do
|
||||||
set -- ${line}
|
set -- ${line}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ dhclient_start()
|
|||||||
|
|
||||||
# Get our options
|
# Get our options
|
||||||
# These options only work in Gentoo, and maybe RedHat
|
# These options only work in Gentoo, and maybe RedHat
|
||||||
|
eval args=\$dhclient_${IFVAR}
|
||||||
eval opts=\$dhcp_${IFVAR}
|
eval opts=\$dhcp_${IFVAR}
|
||||||
[ -z "${opts}" ] && opts=${dhcp}
|
[ -z "${opts}" ] && opts=${dhcp}
|
||||||
|
|
||||||
|
|||||||
@@ -56,8 +56,11 @@ dhcpcd_start()
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Add our route metric
|
# Add our route metric if not given
|
||||||
[ "${metric:-0}" != "0" ] && args="${args} -m ${metric}"
|
case " $args " in
|
||||||
|
*" -m "*) ;;
|
||||||
|
*) [ "${metric:-0}" != 0 ] && args="$args -m $metric";;
|
||||||
|
esac
|
||||||
|
|
||||||
# Bring up DHCP for this interface
|
# Bring up DHCP for this interface
|
||||||
ebegin "Running dhcpcd"
|
ebegin "Running dhcpcd"
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ _ifindex()
|
|||||||
_is_wireless()
|
_is_wireless()
|
||||||
{
|
{
|
||||||
# Support new sysfs layout
|
# Support new sysfs layout
|
||||||
[ -d /sys/class/net/"${IFACE}"/wireless ] && return 0
|
[ -d /sys/class/net/"${IFACE}"/wireless -o \
|
||||||
|
-d /sys/class/net/"${IFACE}"/phy80211 ] && return 0
|
||||||
|
|
||||||
[ ! -e /proc/net/wireless ] && return 1
|
[ ! -e /proc/net/wireless ] && return 1
|
||||||
grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless
|
grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless
|
||||||
@@ -261,6 +262,17 @@ _tunnel()
|
|||||||
|
|
||||||
ifconfig_pre_start()
|
ifconfig_pre_start()
|
||||||
{
|
{
|
||||||
|
local tunnel=
|
||||||
|
eval tunnel=\$iptunnel_${IFVAR}
|
||||||
|
if [ -n "${tunnel}" ]; then
|
||||||
|
# Set our base metric to 1000
|
||||||
|
metric=1000
|
||||||
|
ebegin "Creating tunnel ${IFVAR}"
|
||||||
|
iptunnel add ${tunnel}
|
||||||
|
eend $? || return 1
|
||||||
|
_up
|
||||||
|
fi
|
||||||
|
|
||||||
# MTU support
|
# MTU support
|
||||||
local mtu=
|
local mtu=
|
||||||
eval mtu=\$mtu_${IFVAR}
|
eval mtu=\$mtu_${IFVAR}
|
||||||
@@ -271,17 +283,7 @@ ifconfig_pre_start()
|
|||||||
eval len=\$txqueuelen_${IFVAR}
|
eval len=\$txqueuelen_${IFVAR}
|
||||||
[ -n "${len}" ] && ifconfig "${IFACE}" txqueuelen "${len}"
|
[ -n "${len}" ] && ifconfig "${IFACE}" txqueuelen "${len}"
|
||||||
|
|
||||||
local tunnel=
|
return 0
|
||||||
|
|
||||||
eval tunnel=\$iptunnel_${IFVAR}
|
|
||||||
[ -z "${tunnel}" ] && return 0
|
|
||||||
|
|
||||||
# Set our base metric to 1000
|
|
||||||
metric=1000
|
|
||||||
|
|
||||||
ebegin "Creating tunnel ${IFVAR}"
|
|
||||||
iptunnel add ${tunnel}
|
|
||||||
eend $?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ifconfig_post_stop()
|
ifconfig_post_stop()
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
|
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
|
||||||
# All rights reserved. Released under the 2-clause BSD license.
|
# All rights reserved. Released under the 2-clause BSD license.
|
||||||
|
|
||||||
|
_ip()
|
||||||
|
{
|
||||||
|
if [ -x /bin/ip ]; then
|
||||||
|
echo /bin/ip
|
||||||
|
else
|
||||||
|
echo /sbin/ip
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
iproute2_depend()
|
iproute2_depend()
|
||||||
{
|
{
|
||||||
program /sbin/ip
|
program $(_ip)
|
||||||
provide interface
|
provide interface
|
||||||
after ifconfig
|
after ifconfig
|
||||||
}
|
}
|
||||||
@@ -43,7 +52,8 @@ _ifindex()
|
|||||||
_is_wireless()
|
_is_wireless()
|
||||||
{
|
{
|
||||||
# Support new sysfs layout
|
# Support new sysfs layout
|
||||||
[ -d /sys/class/net/"${IFACE}"/wireless ] && return 0
|
[ -d /sys/class/net/"${IFACE}"/wireless -o \
|
||||||
|
-d /sys/class/net/"${IFACE}"/phy80211 ] && return 0
|
||||||
|
|
||||||
[ ! -e /proc/net/wireless ] && return 1
|
[ ! -e /proc/net/wireless ] && return 1
|
||||||
grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless
|
grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless
|
||||||
@@ -157,7 +167,11 @@ _add_route()
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
if ! ${have_metric} && [ -n "${metric}" ]; then
|
# We cannot use a metric if we're using a nexthop
|
||||||
|
if ! ${have_metric} && \
|
||||||
|
[ -n "${metric}" -a \
|
||||||
|
"${cmd##* nexthop }" = "$cmd" ]
|
||||||
|
then
|
||||||
cmd="${cmd} metric ${metric}"
|
cmd="${cmd} metric ${metric}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -187,16 +201,6 @@ _tunnel()
|
|||||||
|
|
||||||
iproute2_pre_start()
|
iproute2_pre_start()
|
||||||
{
|
{
|
||||||
# MTU support
|
|
||||||
local mtu=
|
|
||||||
eval mtu=\$mtu_${IFVAR}
|
|
||||||
[ -n "${mtu}" ] && ip link set "${IFACE}" mtu "${mtu}"
|
|
||||||
|
|
||||||
# TX Queue Length support
|
|
||||||
local len=
|
|
||||||
eval len=\$txqueuelen_${IFVAR}
|
|
||||||
[ -n "${len}" ] && ip link set "${IFACE}" txqueuelen "${len}"
|
|
||||||
|
|
||||||
local tunnel=
|
local tunnel=
|
||||||
eval tunnel=\$iptunnel_${IFVAR}
|
eval tunnel=\$iptunnel_${IFVAR}
|
||||||
if [ -n "${tunnel}" ]; then
|
if [ -n "${tunnel}" ]; then
|
||||||
@@ -209,6 +213,16 @@ iproute2_pre_start()
|
|||||||
_up
|
_up
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# MTU support
|
||||||
|
local mtu=
|
||||||
|
eval mtu=\$mtu_${IFVAR}
|
||||||
|
[ -n "${mtu}" ] && ip link set "${IFACE}" mtu "${mtu}"
|
||||||
|
|
||||||
|
# TX Queue Length support
|
||||||
|
local len=
|
||||||
|
eval len=\$txqueuelen_${IFVAR}
|
||||||
|
[ -n "${len}" ] && ip link set "${IFACE}" txqueuelen "${len}"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,6 +236,8 @@ _iproute2_ipv6_tentative()
|
|||||||
|
|
||||||
iproute2_post_start()
|
iproute2_post_start()
|
||||||
{
|
{
|
||||||
|
local n=5
|
||||||
|
|
||||||
# Kernel may not have IP built in
|
# Kernel may not have IP built in
|
||||||
if [ -e /proc/net/route ]; then
|
if [ -e /proc/net/route ]; then
|
||||||
ip route flush table cache dev "${IFACE}"
|
ip route flush table cache dev "${IFACE}"
|
||||||
@@ -229,11 +245,16 @@ iproute2_post_start()
|
|||||||
|
|
||||||
if _iproute2_ipv6_tentative; then
|
if _iproute2_ipv6_tentative; then
|
||||||
ebegin "Waiting for IPv6 addresses"
|
ebegin "Waiting for IPv6 addresses"
|
||||||
while true; do
|
while [ $n -ge 0 ]; do
|
||||||
_iproute2_ipv6_tentative || break
|
_iproute2_ipv6_tentative || break
|
||||||
|
sleep 1
|
||||||
|
n=$(($n - 1))
|
||||||
done
|
done
|
||||||
eend 0
|
[ $n -ge 0 ]
|
||||||
|
eend $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
iproute2_post_stop()
|
iproute2_post_stop()
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ pppd_pre_start()
|
|||||||
eval passwordset=\$\{password_${IFVAR}-x\}
|
eval passwordset=\$\{password_${IFVAR}-x\}
|
||||||
if [ -n "${username}" ] \
|
if [ -n "${username}" ] \
|
||||||
&& [ -n "${password}" -o -z "${passwordset}" ]; then
|
&& [ -n "${password}" -o -z "${passwordset}" ]; then
|
||||||
opts="${opts} plugin passwordfd.so passwordfd 0"
|
opts="plugin passwordfd.so ${opts} passwordfd 0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! ${hasdefaultmetric}; then
|
if ! ${hasdefaultmetric}; then
|
||||||
@@ -155,7 +155,7 @@ pppd_pre_start()
|
|||||||
opts="${opts} connect true"
|
opts="${opts} connect true"
|
||||||
set -- "$@" "${link}"
|
set -- "$@" "${link}"
|
||||||
fi
|
fi
|
||||||
opts="${opts} plugin $1.so"
|
opts="plugin $1.so ${opts}"
|
||||||
shift
|
shift
|
||||||
opts="${opts} $@"
|
opts="${opts} $@"
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ tuntap_pre_start()
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
vebegin "Waiting for /dev/net/tun"
|
vebegin "Waiting for /dev/net/tun"
|
||||||
# /dev/net/tun can take it's time to appear
|
# /dev/net/tun can take its time to appear
|
||||||
local timeout=10
|
local timeout=10
|
||||||
while [ ! -e /dev/net/tun -a ${timeout} -gt 0 ]; do
|
while [ ! -e /dev/net/tun -a ${timeout} -gt 0 ]; do
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ _is_vlan()
|
|||||||
_get_vlans()
|
_get_vlans()
|
||||||
{
|
{
|
||||||
[ -e /proc/net/vlan/config ] || return 1
|
[ -e /proc/net/vlan/config ] || return 1
|
||||||
sed -n -e 's/^\(.*[0-9]\) \(.* \) .*'"${IFACE}"'$/\1/p' /proc/net/vlan/config
|
sed -n -e 's/^\W*\([^ ]*\) \(.* \) .*'"${IFACE}"'$/\1/p' /proc/net/vlan/config
|
||||||
}
|
}
|
||||||
|
|
||||||
_check_vlan()
|
_check_vlan()
|
||||||
@@ -87,7 +87,7 @@ vlan_post_start()
|
|||||||
|
|
||||||
# We need to work out the interface name of our new vlan id
|
# We need to work out the interface name of our new vlan id
|
||||||
local ifname="$(sed -n -e \
|
local ifname="$(sed -n -e \
|
||||||
's/^\([^[:space:]]*\) *| '"${vlan}"' *| .*'"${iface}"'$/\1/p' \
|
's/^\([^[:space:]]*\) *| '"${vlan}"' *| .*'"${IFACE}"'$/\1/p' \
|
||||||
/proc/net/vlan/config )"
|
/proc/net/vlan/config )"
|
||||||
mark_service_started "net.${ifname}"
|
mark_service_started "net.${ifname}"
|
||||||
(
|
(
|
||||||
|
|||||||
2
pkgconfig/.gitignore
vendored
Normal file
2
pkgconfig/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
einfo.pc
|
||||||
|
openrc.pc
|
||||||
12
pkgconfig/Makefile
Normal file
12
pkgconfig/Makefile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
DIR= ${LIBDIR}/pkgconfig
|
||||||
|
SRCS= einfo.pc.in openrc.pc.in
|
||||||
|
INC= einfo.pc openrc.pc
|
||||||
|
|
||||||
|
.DEFAULT:
|
||||||
|
${SED} -n -e 's/^VERSION=[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1${GITVER}\"/p' ../../Makefile > version.h
|
||||||
|
|
||||||
|
SED_EXTRA= -e 's:@VERSION@:${VERSION}:g'
|
||||||
|
|
||||||
|
MK= ../mk
|
||||||
|
include ../Makefile.inc
|
||||||
|
include ${MK}/scripts.mk
|
||||||
9
pkgconfig/einfo.pc.in
Normal file
9
pkgconfig/einfo.pc.in
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
prefix=@PREFIX@
|
||||||
|
exec_prefix=${prefix}
|
||||||
|
libdir=${prefix}/@LIB@
|
||||||
|
includedir=/usr/include
|
||||||
|
|
||||||
|
Name: einfo
|
||||||
|
Description: Pretty console informational display
|
||||||
|
Version: @VERSION@
|
||||||
|
Libs: -L${libdir} -leinfo
|
||||||
10
pkgconfig/openrc.pc.in
Normal file
10
pkgconfig/openrc.pc.in
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
prefix=@PREFIX@
|
||||||
|
exec_prefix=${prefix}
|
||||||
|
libdir=${prefix}/@LIB@
|
||||||
|
includedir=/usr/include
|
||||||
|
|
||||||
|
Name: OpenRC
|
||||||
|
Description: Universal init system
|
||||||
|
Version: @VERSION@
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
Libs: -L${libdir} -lrc
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
BOOT= bootmisc fsck hostname localmount network \
|
BOOT= bootmisc fsck hostname localmount network \
|
||||||
root swap sysctl urandom
|
root staticroute swap sysctl urandom
|
||||||
DEFAULT= local netmount
|
DEFAULT= local netmount
|
||||||
SHUTDOWN= savecache
|
SHUTDOWN= savecache
|
||||||
|
|
||||||
|
|||||||
5
scripts/Makefile
Normal file
5
scripts/Makefile
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
DIR= ${LIBEXECDIR}/bin
|
||||||
|
BIN= on_ac_power
|
||||||
|
|
||||||
|
MK= ../mk
|
||||||
|
include ${MK}/scripts.mk
|
||||||
37
scripts/on_ac_power
Executable file
37
scripts/on_ac_power
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Detect AC power or not in a portable way
|
||||||
|
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
|
||||||
|
|
||||||
|
# Exit 0 if on AC power, 1 if not and 255 if we don't know how to work it out
|
||||||
|
if [ -f /proc/acpi/ac_adapter/AC*/state ]; then
|
||||||
|
cat /proc/acpi/ac_adapter/AC*/state | while read line; do
|
||||||
|
case "$line" in
|
||||||
|
"state:"*"off-line") exit 128;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
elif [ -f /sys/class/power_supply/AC*/online ]; then
|
||||||
|
cat /sys/class/power_supply/AC*/online | while read line; do
|
||||||
|
[ "${line}" = 0 ] && exit 128
|
||||||
|
done
|
||||||
|
elif [ -f /proc/pmu/info ]; then
|
||||||
|
cat /proc/pmu/info | while read line; do
|
||||||
|
case "$line" in
|
||||||
|
"AC Power"*": 0") exit 128;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
elif type envstat >/dev/null 2>&1; then
|
||||||
|
# NetBSD has envstat
|
||||||
|
envstat -d acpiacad0 2>/dev/null | while read line; do
|
||||||
|
case "$line" in
|
||||||
|
"connected:"*"OFF") exit 128;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
elif sysctl -q hw.acpi.acline >/dev/null 2>/dev/null; then
|
||||||
|
case $(sysctl -n hw.acpi.acline) in
|
||||||
|
0) exit 1;;
|
||||||
|
*) exit 0;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
[ $? != 128 ]
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
# All rights reserved. Released under the 2-clause BSD license.
|
# All rights reserved. Released under the 2-clause BSD license.
|
||||||
|
|
||||||
. @SYSCONFDIR@/init.d/functions.sh
|
. @SYSCONFDIR@/init.d/functions.sh
|
||||||
|
. @LIBEXECDIR@/sh/rc-functions.sh
|
||||||
|
|
||||||
config() {
|
config() {
|
||||||
[ -n "$*" ] && echo "$RC_SVCNAME config $*" >&3
|
[ -n "$*" ] && echo "$RC_SVCNAME config $*" >&3
|
||||||
@@ -82,24 +83,7 @@ do
|
|||||||
|
|
||||||
if . "$_dir/$RC_SVCNAME"; then
|
if . "$_dir/$RC_SVCNAME"; then
|
||||||
echo "$RC_SVCNAME" >&3
|
echo "$RC_SVCNAME" >&3
|
||||||
depend
|
_depend
|
||||||
_rc_svcname=$(shell_var "$RC_SVCNAME")
|
|
||||||
|
|
||||||
# Add any user defined depends
|
|
||||||
for _deptype in config:CONFIG need:NEED use:USE \
|
|
||||||
after:AFTER before:BEFORE \
|
|
||||||
provide:PROVIDE keyword:KEYWORD; do
|
|
||||||
IFS=:
|
|
||||||
set -- $_deptype
|
|
||||||
unset IFS
|
|
||||||
eval _depends=\$rc_$_rc_svcname_$1
|
|
||||||
[ -z "$_depends" ] && eval _depends=\$rc_$1
|
|
||||||
[ -z "$_depends" ] && \
|
|
||||||
eval _depends=\$RC_$_rc_svcname_$2
|
|
||||||
[ -z "$_depends" ] && eval _depends=\$RC_$2
|
|
||||||
|
|
||||||
$1 ${_depends}
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ fi
|
|||||||
if [ -e /etc/runlevels/"$RC_DEFAULTLEVEL"/consolefont \
|
if [ -e /etc/runlevels/"$RC_DEFAULTLEVEL"/consolefont \
|
||||||
-o -e /etc/runlevels/"$RC_BOOTLEVEL"/consolefont ]; then
|
-o -e /etc/runlevels/"$RC_BOOTLEVEL"/consolefont ]; then
|
||||||
printf "\033%s" "$termencoding" >"$CONSOLE" 2>/dev/null
|
printf "\033%s" "$termencoding" >"$CONSOLE" 2>/dev/null
|
||||||
if [ -r "$RC_LIBEXECDIR"/console/font -a -x /bin/setfont ]; then
|
if [ -r "$RC_LIBEXECDIR"/console/font -a -x /usr/bin/setfont ]; then
|
||||||
font="$(cat "$RC_LIBEXECDIR"/console/font)"
|
font="$(cat "$RC_LIBEXECDIR"/console/font)"
|
||||||
[ -c "$CONSOLE" ] && cons="-C $CONSOLE"
|
[ -c "$CONSOLE" ] && cons="-C $CONSOLE"
|
||||||
setfont $cons "$RC_LIBEXECDIR"/console/"$font" 2>/dev/null
|
setfont $cons "$RC_LIBEXECDIR"/console/"$font" 2>/dev/null
|
||||||
@@ -29,7 +29,7 @@ if [ -e /etc/runlevels/"$RC_DEFAULTLEVEL"/keymaps \
|
|||||||
-o -e /etc/runlevels/"$RC_BOOTLEVEL"/keymaps ]; then
|
-o -e /etc/runlevels/"$RC_BOOTLEVEL"/keymaps ]; then
|
||||||
kbd_mode $kmode -C "$CONSOLE" 2>/dev/null
|
kbd_mode $kmode -C "$CONSOLE" 2>/dev/null
|
||||||
if [ -r "$RC_LIBEXECDIR"/console/keymap ]; then
|
if [ -r "$RC_LIBEXECDIR"/console/keymap ]; then
|
||||||
loadkeys "$RC_LIBEXECDIR"/console/keymap 2>/dev/null
|
loadkeys -q "$RC_LIBEXECDIR"/console/keymap 2>/dev/null
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -8,14 +8,19 @@
|
|||||||
# tmpfs and ramfs are easy, so force one or the other.
|
# tmpfs and ramfs are easy, so force one or the other.
|
||||||
mount_svcdir()
|
mount_svcdir()
|
||||||
{
|
{
|
||||||
|
# mount from fstab if we can
|
||||||
|
fstabinfo --mount "$RC_SVCDIR" && return 0
|
||||||
|
|
||||||
local fs= fsopts="-o rw,noexec,nodev,nosuid"
|
local fs= fsopts="-o rw,noexec,nodev,nosuid"
|
||||||
local devdir="rc-svcdir" x=
|
|
||||||
local svcsize=${rc_svcsize:-1024}
|
local svcsize=${rc_svcsize:-1024}
|
||||||
|
|
||||||
|
# Some buggy kernels report tmpfs even when not present :(
|
||||||
if grep -Eq "[[:space:]]+tmpfs$" /proc/filesystems; then
|
if grep -Eq "[[:space:]]+tmpfs$" /proc/filesystems; then
|
||||||
fs="tmpfs"
|
mount -n -t tmpfs $fsopts,mode=755,size=${svcsize}k \
|
||||||
fsopts="$fsopts,mode=0755,size=${svcsize}k"
|
rc-svcdir "$RC_SVCDIR" && return 0
|
||||||
elif grep -Eq "[[:space:]]+ramfs$" /proc/filesystems; then
|
fi
|
||||||
|
|
||||||
|
if grep -Eq "[[:space:]]+ramfs$" /proc/filesystems; then
|
||||||
fs="ramfs"
|
fs="ramfs"
|
||||||
# ramfs has no special options
|
# ramfs has no special options
|
||||||
elif [ -e /dev/ram0 ] \
|
elif [ -e /dev/ram0 ] \
|
||||||
@@ -32,10 +37,7 @@ mount_svcdir()
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If we have no entry in fstab for $RC_SVCDIR, provide our own
|
mount -n -t "$fs" $fsopts rc-svcdir "$RC_SVCDIR"
|
||||||
if ! fstabinfo --mount "$RC_SVCDIR"; then
|
|
||||||
mount -n -t "$fs" $fsopts "$devdir" "$RC_SVCDIR"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
. "$RC_LIBEXECDIR"/sh/functions.sh
|
. "$RC_LIBEXECDIR"/sh/functions.sh
|
||||||
@@ -68,4 +70,14 @@ if $mountproc; then
|
|||||||
eend $?
|
eend $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Try to mount xenfs as early as possible, otherwise rc_sys() will always
|
||||||
|
# return RC_SYS_XENU and will think that we are in a domU while it's not.
|
||||||
|
if grep -Eq "[[:space:]]+xenfs$" /proc/filesystems; then
|
||||||
|
ebegin "Mounting xenfs"
|
||||||
|
if ! fstabinfo --mount /proc/xen; then
|
||||||
|
mount -n -t xenfs xenfs /proc/xen -o nosuid,nodev,noexec
|
||||||
|
fi
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
|
||||||
. "$RC_LIBEXECDIR"/sh/init-common-post.sh
|
. "$RC_LIBEXECDIR"/sh/init-common-post.sh
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ stop_addon()
|
|||||||
( import_addon "$1-stop" )
|
( import_addon "$1-stop" )
|
||||||
}
|
}
|
||||||
|
|
||||||
net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
|
net_fs_list="afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre
|
||||||
|
ncpfs nfs nfs4 ocfs2 shfs smbfs $extra_net_fs_list"
|
||||||
is_net_fs()
|
is_net_fs()
|
||||||
{
|
{
|
||||||
[ -z "$1" ] && return 1
|
[ -z "$1" ] && return 1
|
||||||
@@ -84,6 +85,27 @@ get_bootparam()
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Called from runscript.sh or gendepends.sh
|
||||||
|
_depend() {
|
||||||
|
depend
|
||||||
|
local _rc_svcname=$(shell_var "$RC_SVCNAME") _deptype= _depends=
|
||||||
|
|
||||||
|
# Add any user defined depends
|
||||||
|
for _deptype in config:CONFIG need:NEED use:USE \
|
||||||
|
after:AFTER before:BEFORE \
|
||||||
|
provide:PROVIDE keyword:KEYWORD; do
|
||||||
|
IFS=:
|
||||||
|
set -- $_deptype
|
||||||
|
unset IFS
|
||||||
|
eval _depends=\$rc_${_rc_svcname}_$1
|
||||||
|
[ -z "$_depends" ] && eval _depends=\$rc_$1
|
||||||
|
[ -z "$_depends" ] && eval _depends=\$RC_${_rc_svcname}_$2
|
||||||
|
[ -z "$_depends" ] && eval _depends=\$RC_$2
|
||||||
|
|
||||||
|
$1 $_depends
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Add our sbin to $PATH
|
# Add our sbin to $PATH
|
||||||
case "$PATH" in
|
case "$PATH" in
|
||||||
"$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);;
|
"$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);;
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ do_unmount()
|
|||||||
# Unmounting a shared mount can unmount other mounts, so
|
# Unmounting a shared mount can unmount other mounts, so
|
||||||
# we need to check the mount is still valid
|
# we need to check the mount is still valid
|
||||||
mountinfo --quiet "$mnt" || continue
|
mountinfo --quiet "$mnt" || continue
|
||||||
|
# Ensure we interpret all characters properly.
|
||||||
|
mnt=$(printf "$mnt")
|
||||||
|
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
umount)
|
umount)
|
||||||
@@ -36,7 +38,7 @@ do_unmount()
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
retry=3
|
retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1
|
||||||
while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do
|
while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do
|
||||||
if type fuser >/dev/null 2>&1; then
|
if type fuser >/dev/null 2>&1; then
|
||||||
pids="$(fuser $f_opts "$mnt" 2>/dev/null)"
|
pids="$(fuser $f_opts "$mnt" 2>/dev/null)"
|
||||||
@@ -53,13 +55,16 @@ do_unmount()
|
|||||||
eend 1 "in use but fuser finds nothing"
|
eend 1 "in use but fuser finds nothing"
|
||||||
retry=0;;
|
retry=0;;
|
||||||
*)
|
*)
|
||||||
local sig="KILL"
|
if [ $retry -le 0 ]; then
|
||||||
[ $retry -gt 0 ] && sig="TERM"
|
eend 1
|
||||||
fuser $f_kill$sig -k $f_opts \
|
else
|
||||||
"$mnt" >/dev/null 2>&1
|
local sig="TERM"
|
||||||
sleep 1
|
retry=$(($retry - 1))
|
||||||
retry=$(($retry - 1))
|
[ $retry = 1 ] && sig="KILL"
|
||||||
[ $retry -le 0 ] && eend 1
|
fuser $f_kill$sig -k $f_opts \
|
||||||
|
"$mnt" >/dev/null 2>&1
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
[ $retry -le 0 ] && break
|
[ $retry -le 0 ] && break
|
||||||
|
|||||||
@@ -25,6 +25,29 @@ shift
|
|||||||
# Compat
|
# Compat
|
||||||
export SVCNAME=$RC_SVCNAME
|
export SVCNAME=$RC_SVCNAME
|
||||||
|
|
||||||
|
# Dependency function
|
||||||
|
config() {
|
||||||
|
[ -n "$*" ] && echo "config $*"
|
||||||
|
}
|
||||||
|
need() {
|
||||||
|
[ -n "$*" ] && echo "need $*"
|
||||||
|
}
|
||||||
|
use() {
|
||||||
|
[ -n "$*" ] && echo "use $*"
|
||||||
|
}
|
||||||
|
before() {
|
||||||
|
[ -n "$*" ] && echo "before $*"
|
||||||
|
}
|
||||||
|
after() {
|
||||||
|
[ -n "$*" ] && echo "after $*"
|
||||||
|
}
|
||||||
|
provide() {
|
||||||
|
[ -n "$*" ] && echo "provide $*"
|
||||||
|
}
|
||||||
|
keyword() {
|
||||||
|
[ -n "$*" ] && echo "keyword $*"
|
||||||
|
}
|
||||||
|
|
||||||
# Descript the init script to the user
|
# Descript the init script to the user
|
||||||
describe()
|
describe()
|
||||||
{
|
{
|
||||||
@@ -164,6 +187,12 @@ done
|
|||||||
unset _f
|
unset _f
|
||||||
|
|
||||||
while [ -n "$1" ]; do
|
while [ -n "$1" ]; do
|
||||||
|
# Sepcial case depend
|
||||||
|
if [ "$1" = depend ]; then
|
||||||
|
shift
|
||||||
|
_depend
|
||||||
|
continue
|
||||||
|
fi
|
||||||
# See if we have the required function and run it
|
# See if we have the required function and run it
|
||||||
for _cmd in describe start stop status ${extra_commands:-$opts} \
|
for _cmd in describe start stop status ${extra_commands:-$opts} \
|
||||||
$extra_started_commands
|
$extra_started_commands
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define RC_LEVEL_BOOT "boot"
|
#define RC_LEVEL_BOOT "boot"
|
||||||
|
|||||||
@@ -643,7 +643,7 @@ static int EINFO_PRINTF(3, 0)
|
|||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
if (_eprefix)
|
if (_eprefix)
|
||||||
fprintf(f, "%s%s%s|", _ecolor(f, color), _eprefix, _ecolor(f, ECOLOR_NORMAL));
|
fprintf(f, "%s%s%s|", _ecolor(f, color), _eprefix, _ecolor(f, ECOLOR_NORMAL));
|
||||||
fprintf(f, "%s*%s ", _ecolor(f, color), _ecolor(f, ECOLOR_NORMAL));
|
fprintf(f, " %s*%s ", _ecolor(f, color), _ecolor(f, ECOLOR_NORMAL));
|
||||||
retval += _eindent(f);
|
retval += _eindent(f);
|
||||||
va_copy(ap, va);
|
va_copy(ap, va);
|
||||||
retval += vfprintf(f, fmt, ap) + 3;
|
retval += vfprintf(f, fmt, ap) + 3;
|
||||||
@@ -800,7 +800,7 @@ ebegin(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
retval = _einfovn(fmt, ap);
|
retval = _einfovn(fmt, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
retval += printf("...");
|
retval += printf(" ...");
|
||||||
if (colour_terminal(stdout))
|
if (colour_terminal(stdout))
|
||||||
retval += printf("\n");
|
retval += printf("\n");
|
||||||
LASTCMD("ebegin");
|
LASTCMD("ebegin");
|
||||||
@@ -817,7 +817,7 @@ _eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg)
|
|||||||
if (!msg)
|
if (!msg)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cols = get_term_columns(fp) - (strlen(msg) + 3);
|
cols = get_term_columns(fp) - (strlen(msg) + 5);
|
||||||
|
|
||||||
/* cons25 is special - we need to remove one char, otherwise things
|
/* cons25 is special - we need to remove one char, otherwise things
|
||||||
* do not align properly at all. */
|
* do not align properly at all. */
|
||||||
@@ -831,18 +831,15 @@ _eend(FILE * EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg)
|
|||||||
if (term_is_cons25)
|
if (term_is_cons25)
|
||||||
cols--;
|
cols--;
|
||||||
|
|
||||||
/* If extra spacing is required around msg, then please change
|
|
||||||
* via a runtime knob and leave this default as is as it saves 2
|
|
||||||
* valuable columns when running on 80 column screens. */
|
|
||||||
if (cols > 0 && colour_terminal(fp)) {
|
if (cols > 0 && colour_terminal(fp)) {
|
||||||
fprintf(fp, "%s%s %s[%s%s%s]%s\n", up, tgoto(goto_column, 0, cols),
|
fprintf(fp, "%s%s %s[%s %s %s]%s\n", up, tgoto(goto_column, 0, cols),
|
||||||
ecolor(ECOLOR_BRACKET), ecolor(color), msg,
|
ecolor(ECOLOR_BRACKET), ecolor(color), msg,
|
||||||
ecolor(ECOLOR_BRACKET), ecolor(ECOLOR_NORMAL));
|
ecolor(ECOLOR_BRACKET), ecolor(ECOLOR_NORMAL));
|
||||||
} else {
|
} else {
|
||||||
if (col > 0)
|
if (col > 0)
|
||||||
for (i = 0; i < cols - col; i++)
|
for (i = 0; i < cols - col; i++)
|
||||||
fprintf(fp, " ");
|
fprintf(fp, " ");
|
||||||
fprintf(fp, " [%s]\n", msg);
|
fprintf(fp, " [ %s ]\n", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1030,7 +1027,7 @@ ebeginv(const char *EINFO_RESTRICT fmt, ...)
|
|||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
retval = _einfovn(fmt, ap);
|
retval = _einfovn(fmt, ap);
|
||||||
retval += printf("...");
|
retval += printf(" ...");
|
||||||
if (colour_terminal(stdout))
|
if (colour_terminal(stdout))
|
||||||
retval += printf("\n");
|
retval += printf("\n");
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|||||||
@@ -346,8 +346,9 @@ get_provided(const RC_DEPINFO *depinfo, const char *runlevel, int options)
|
|||||||
get_provided1(runlevel, providers, dt, bootlevel, false, RC_SERVICE_STOPPED))
|
get_provided1(runlevel, providers, dt, bootlevel, false, RC_SERVICE_STOPPED))
|
||||||
return providers;
|
return providers;
|
||||||
|
|
||||||
/* Still nothing? OK, list all services */
|
/* Still nothing? OK, list our first provided service. */
|
||||||
TAILQ_FOREACH(service, dt->services, entries)
|
service = TAILQ_FIRST(dt->services);
|
||||||
|
if (service != NULL)
|
||||||
rc_stringlist_add(providers, service->value);
|
rc_stringlist_add(providers, service->value);
|
||||||
|
|
||||||
return providers;
|
return providers;
|
||||||
@@ -738,7 +739,7 @@ rc_deptree_update(void)
|
|||||||
RC_STRING *s, *s2, *s2_np, *s3, *s4;
|
RC_STRING *s, *s2, *s2_np, *s3, *s4;
|
||||||
char *line = NULL;
|
char *line = NULL;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
char *depend, *depends, *service, *type, *nosys;
|
char *depend, *depends, *service, *type, *nosys, *onosys;
|
||||||
size_t i, k, l;
|
size_t i, k, l;
|
||||||
bool retval = true;
|
bool retval = true;
|
||||||
const char *sys = rc_sys();
|
const char *sys = rc_sys();
|
||||||
@@ -802,6 +803,11 @@ rc_deptree_update(void)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Don't provide ourself */
|
||||||
|
if (strcmp(type, "iprovide") == 0 &&
|
||||||
|
strcmp(depend, service) == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
/* .sh files are not init scripts */
|
/* .sh files are not init scripts */
|
||||||
l = strlen(depend);
|
l = strlen(depend);
|
||||||
if (l > 2 &&
|
if (l > 2 &&
|
||||||
@@ -841,17 +847,25 @@ rc_deptree_update(void)
|
|||||||
* work for them. This doesn't stop them from being run directly. */
|
* work for them. This doesn't stop them from being run directly. */
|
||||||
if (sys) {
|
if (sys) {
|
||||||
len = strlen(sys);
|
len = strlen(sys);
|
||||||
nosys = xmalloc(len + 3);
|
nosys = xmalloc(len + 1);
|
||||||
nosys[0] = 'n';
|
nosys[0] = '-';
|
||||||
nosys[1] = 'o';
|
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
nosys[i + 2] = (char)tolower((unsigned char)sys[i]);
|
nosys[i + 1] = (char)tolower((unsigned char)sys[i]);
|
||||||
nosys[i + 2] = '\0';
|
nosys[i + 1] = '\0';
|
||||||
|
|
||||||
|
onosys = xmalloc(len + 3);
|
||||||
|
onosys[0] = 'n';
|
||||||
|
onosys[1] = 'o';
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
onosys[i + 2] = (char)tolower((unsigned char)sys[i]);
|
||||||
|
onosys[i + 2] = '\0';
|
||||||
|
|
||||||
TAILQ_FOREACH_SAFE(depinfo, deptree, entries, depinfo_np)
|
TAILQ_FOREACH_SAFE(depinfo, deptree, entries, depinfo_np)
|
||||||
if ((deptype = get_deptype(depinfo, "keyword")))
|
if ((deptype = get_deptype(depinfo, "keyword")))
|
||||||
TAILQ_FOREACH(s, deptype->services, entries)
|
TAILQ_FOREACH(s, deptype->services, entries)
|
||||||
if (strcmp(s->value, nosys) == 0) {
|
if (strcmp(s->value, nosys) == 0 ||
|
||||||
|
strcmp(s->value, onosys) == 0)
|
||||||
|
{
|
||||||
provide = get_deptype(depinfo, "iprovide");
|
provide = get_deptype(depinfo, "iprovide");
|
||||||
TAILQ_REMOVE(deptree, depinfo, entries);
|
TAILQ_REMOVE(deptree, depinfo, entries);
|
||||||
TAILQ_FOREACH(di, deptree, entries) {
|
TAILQ_FOREACH(di, deptree, entries) {
|
||||||
@@ -870,6 +884,7 @@ rc_deptree_update(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(nosys);
|
free(nosys);
|
||||||
|
free(onosys);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Phase 3 - add our providers to the tree */
|
/* Phase 3 - add our providers to the tree */
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user