Compare commits

..

136 Commits

Author SHA1 Message Date
Roy Marples
a7fabeef95 Release OpenRC-0.5.1 2009-10-08 21:27:30 +01:00
Roy Marples
07f9be7b1c Add pkg-config support, fixes #187. 2009-10-08 00:20:43 +01:00
Roy Marples
42ca23b878 Don't quote opts 2009-09-21 19:05:47 +01:00
Roy Marples
3dc712e222 Allow init scripts to show their dependencies easier 2009-09-04 16:00:08 +01:00
Roy Marples
44585fea46 Add -P to start-stop-daemon to display a . for each second elapsed.
Fixes #197.
2009-09-04 15:41:08 +01:00
Roy Marples
6e485bde39 Really fix --signal 0 2009-09-04 13:32:59 +01:00
Roy Marples
2ea1df634e Fix signed error. 2009-09-04 13:24:26 +01:00
Roy Marples
807e5d7250 Timeout for ipv6 addresses being tentative. 2009-09-04 13:23:40 +01:00
Roy Marples
7012630302 Allow any valid numeric signal and not just what we define. 2009-09-01 13:57:45 +01:00
Roy Marples
51907c7368 If there is an error setting the font, abort instead of trying to set
the font for subsequent consoles.
2009-08-19 16:49:35 +01:00
Roy Marples
8da7a49d02 Fix example 2009-08-17 21:45:11 +01:00
Roy Marples
29949a5496 If mtab is write only and a symlink then assume it's linked to /proc/mounts
and don't try and update it. Fixes #185.
2009-07-20 19:47:08 +01:00
Roy Marples
7fbb6ad427 Don't provide ourself, fixes #190 2009-07-20 19:42:15 +01:00
Roy Marples
08b5664668 Only delete /etc/nologin if we can write to it 2009-07-09 13:32:27 +01:00
Roy Marples
7962218dd8 Apply MTU and txqueuelen after creating the tunnel. 2009-07-08 22:38:48 +01:00
Roy Marples
889b317ac6 Fix wpa_supplicant to find wireless interfaces on newer kernels.
Fixes #176.
2009-07-01 00:24:08 +01:00
Roy Marples
9907c90552 Host should configure urandom.
Fixes #179.
2009-07-01 00:13:25 +01:00
Roy Marples
b4104957b1 We should use -feature instead of nofeature.
This matches the ifconfig and Gentoo USE flag syntax and is hopefully
easier to read.
Fixes #178.
2009-07-01 00:07:32 +01:00
Roy Marples
6abeec7430 Use rc_getline instead of assuming a fixed kernel cmdline length.
This is now requires as COMMAND_LINE_SIZE isn't exposed by kernel
headers anymore.
Fixes #177.
2009-06-21 12:20:53 +01:00
Roy Marples
fbb78022f9 Ensure that tmp dirs are +rw as well as +t. 2009-06-13 21:12:50 +01:00
Natanael Copa
79b24f5b79 hwclock now sends help to stderr. 2009-06-12 23:11:16 +01:00
Roy Marples
fc6cdefedb Linux FHS requires /var/lib/misc
Stop fuser from being chatty
2009-06-08 22:18:39 +01:00
Roy Marples
43f6c2196e Release openrc-0.5.0 2009-06-05 09:20:11 +01:00
Roy Marples
c568baf8c8 Ignore more foo 2009-06-05 09:20:10 +01:00
Roy Marples
aaced3face Update copyright 2009-06-05 09:20:10 +01:00
Roy Marples
c3e9a7ec14 Warn about going inactive correctly. 2009-06-01 20:10:42 +01:00
Roy Marples
efec0b5012 nexthop routes don't use metrics 2009-06-01 20:06:56 +01:00
Roy Marples
278e65b24a Ignore termencoding 2009-05-29 22:09:39 +01:00
Roy Marples
1b3a413673 Skip sysctl errors 2009-05-29 22:08:47 +01:00
Roy Marples
a685e4db0a Add FreeBSD support for AC power. 2009-05-29 21:33:44 +01:00
Roy Marples
e689f17933 Support NetBSD envstat for working out if on AC power. 2009-05-29 21:19:31 +01:00
Roy Marples
fa9e482a31 If not running on AC power don't run fsck to preserve battery life. 2009-05-29 21:06:59 +01:00
Roy Marples
60134ddec5 Only delete addresses for interfaces that exist. 2009-05-29 15:23:23 +01:00
Roy Marples
83e82c452e Merge branch 'master' of ssh://roy.marples.name/var/git/openrc 2009-05-29 14:15:12 +01:00
Roy Marples
a518d34549 Ignore more foo 2009-05-28 20:16:35 +01:00
Roy Marples
5acf0e9464 We need to use eval so we can pass "*" as an argument. 2009-05-26 22:36:53 +01:00
Roy Marples
c0fd1b49e4 Move non compiled libraries from /lib/rc to /libexec/rc
OpenRC version is now stored as plaintext in /libexec/rc/version

Plugins (cursplash, splashutils) will have to be re-compiled to pickup
the new directories. State data needs to be moved from /lib/rc/init.d
to /libexec/rc/init.d as well.
2009-05-23 20:38:12 +01:00
Roy Marples
5294abe617 If already started or stopped, abort. 2009-05-17 12:29:46 +01:00
Charlie
9c5faf231c procfs should use modules. 2009-05-11 15:31:52 +01:00
Roy Marples
701813b5ff procfs should use modules. 2009-05-11 15:31:52 +01:00
Roy Marples
b2eb9f8a83 Unset PAM environment variables if not set 2009-05-07 12:20:59 +01:00
Roy Marples
cc5e43922e Supply a working default inittab 2009-05-07 10:44:50 +01:00
Roy Marples
0aabe32375 Enable wpa_supplicant for >1 wireless interface if found. 2009-05-06 16:47:37 +01:00
Roy Marples
7c81f74b60 Fix compile on NetBSD 2009-05-05 16:39:59 +01:00
Roy Marples
d441bf1585 Ignore more foo for the BSDs 2009-05-05 10:29:52 +01:00
Roy Marples
43063ae7c2 Fix compile on NetBSD and FreeBSD 2009-05-05 10:24:21 +01:00
Roy Marples
e575b33047 We shouldn't use -L/lib 2009-05-02 18:29:00 +01:00
Roy Marples
c09e6b3e6d Typo 2009-05-02 12:31:13 +01:00
Roy Marples
6615eb4b68 Add runlevel stacking, #88
This implementation has the limitation that you cannot have a stacked
runlevel and service of the same name in a runlevel.
2009-05-02 12:26:45 +01:00
Roy Marples
e040bd77e9 Ignore test results 2009-05-02 12:18:34 +01:00
Roy Marples
658a220638 Add (c) to Copyright 2009-05-01 15:11:40 +01:00
Roy Marples
b32c9c1139 Ensure that rc.d services are not started twice if PKG_DIR is blank.
Fixes #170
2009-05-01 09:37:51 +01:00
Roy Marples
fb051bf81a Add -i, --ifexists so that we can do this
rc-sercice -i foo -- restart
instead of this
  rc-service -e foo && rc-service foo -- restart
2009-05-01 08:38:57 +01:00
Roy Marples
caf29a6480 Fix git versioning 2009-05-01 00:15:20 +01:00
Roy Marples
f689187966 Add -Z, --dry-run option to show which services we would start/stop
without actually doing so.
Fixes #151.
2009-04-30 23:42:01 +01:00
Roy Marples
3d0e5175d8 Avoid more gcc warning about not checking return values ... 2009-04-30 19:56:43 +01:00
Roy Marples
21e45e895c Brand with git version instead of svn 2009-04-30 19:16:31 +01:00
Juan RP
a1e40e9beb Fix parens 2009-04-30 16:45:18 +01:00
Roy Marples
b70501ef45 Go back to git 2009-04-30 15:05:39 +01:00
Roy Marples
e0f0fc8046 Don't start services when their need dependency is broken 2009-04-28 08:29:02 +00:00
Roy Marples
48f477f851 Fix a brain fart 2009-04-27 13:58:26 +00:00
Roy Marples
3d43fb6f22 Although the noshutdown keyword is nice, we shouldn't use it for network or dhcpcd. Instead fake network shutdown so it comes back up correctly at boot and KILL dhcpcd to preserve network. 2009-04-27 13:33:37 +00:00
Roy Marples
824bb3aee3 Allow templates to define a stop signal 2009-04-27 13:32:13 +00:00
Roy Marples
0f70279f89 Set correct prefix 2009-04-27 12:12:42 +00:00
Roy Marples
71062f479a Add noshutdown to dhcpcd and wpa_supplicant. Tweak for style. 2009-04-27 12:06:54 +00:00
Roy Marples
94b3057571 Add the noshutdown keyword to special case the shutdown. 2009-04-27 12:04:33 +00:00
Roy Marples
338c93733d Fix the nstop keyword. 2009-04-27 09:06:30 +00:00
Roy Marples
e70a142956 Style. 2009-04-27 07:51:18 +00:00
Roy Marples
eaa32c75c9 Add the nostop keyword so that we don't stop the network init script by default. 2009-04-26 21:16:05 +00:00
Roy Marples
2b866f264f Stop using needless {} in vars 2009-04-26 21:13:26 +00:00
Roy Marples
59574780da Document tap interface creation. 2009-04-26 18:53:24 +00:00
Roy Marples
77c8f8abbb Use /bin/bash or user shell in /etc/passwd if none set before /bin/sh. 2009-04-26 17:57:06 +00:00
Roy Marples
1d48183646 Try and set a keymap as early as possible, #169 2009-04-26 11:19:22 +00:00
Roy Marples
0feddbd815 Use kill for the pid check as it's fast. 2009-04-25 20:44:13 +00:00
Roy Marples
bd6bb932df Don't report final eends for interfaces as they make no sense. 2009-04-25 18:02:28 +00:00
Roy Marples
f51d8d0b7d Document interfaces variable useage a bit better. 2009-04-25 13:44:41 +00:00
Roy Marples
42580d67b8 Verbosely report vars correctly. 2009-04-25 11:39:18 +00:00
Roy Marples
c07b384d82 Don't drop to sulogin by default, but make this configurable. 2009-04-24 11:49:55 +00:00
Roy Marples
bd211d534b We should match the full variable name. 2009-04-24 11:45:48 +00:00
Roy Marples
b0ac71fe2a Add missing show levels switch. 2009-04-24 10:23:49 +00:00
Roy Marples
9966a902ab rc-status -c now lists services that have crashed.
It returns 0 if there are crashed services, otherwise 1.
This it easy to restart crashed services automatically.
More for #120.
2009-04-24 10:17:53 +00:00
Roy Marples
e2629b0a3b Remove .depend before creating it. 2009-04-24 08:33:11 +00:00
Roy Marples
5276b13926 Cast to int 2009-04-24 08:32:44 +00:00
Roy Marples
e7b35a8f15 Allow rc to start (optionally stop) crashed services, #120 2009-04-24 07:03:08 +00:00
Roy Marples
e643a7fdd5 Describe interval units 2009-04-24 06:37:29 +00:00
Roy Marples
ade85d4bd8 Improve style for KNF 2009-04-23 21:31:22 +00:00
Roy Marples
6953474655 Style 2009-04-23 20:53:24 +00:00
Roy Marples
d231a2f0d9 Fix logic, thanks to Maryasin Semen 2009-04-23 20:44:17 +00:00
Roy Marples
7086df5664 Don't include hotplugged services in manual. 2009-04-23 20:27:40 +00:00
Roy Marples
7dc9c39503 Improve the service timeout code and reduce the timeout to 60 seconds.
Don't process any dependencies when changing runlevels and called 
outside of RC otherwise we can deadlock.
2009-04-23 20:20:17 +00:00
Roy Marples
953b0b7435 Document -i, --interpreted flag. 2009-04-22 10:49:07 +00:00
Roy Marples
f326f688f6 Add the -i, --interpreted option.
This enables the code to include the daemons interpreter when matching
process name which fixes bug #164.
Existing init scripts that rely on the old behaviour will need to be 
fixed.
2009-04-22 10:45:01 +00:00
Roy Marples
588c9da0ab Document DHCP and iwconfig. 2009-04-19 21:45:09 +00:00
Roy Marples
7e9cdbd16e Document \$int and how to create bridge and vlan interfaces. 2009-04-19 21:35:26 +00:00
Roy Marples
a2856fe192 Use shell_var for shell variables. 2009-04-19 21:10:06 +00:00
Roy Marples
8e5a601087 Style 2009-04-19 21:02:31 +00:00
Roy Marples
a01f9be6f2 We should use $int for compat with NetBSD 2009-04-19 20:59:46 +00:00
Roy Marples
371506be48 Default to not building the old net scripts. 2009-04-19 20:54:11 +00:00
Roy Marples
4febf00c06 Allow family on routes, #152 2009-04-19 20:05:40 +00:00
Roy Marples
73f6d1c39e Document defaultroute 2009-04-19 18:36:06 +00:00
Roy Marples
ee53e6ad29 -w, --wait seconds
New option so you can set the number of seconds to wait for and
check the daemon is still running.
The old code that periodically polled wasn't that reliable - in this 
case simpler == better.
Fixes #160
2009-04-19 18:20:49 +00:00
Roy Marples
e2942e34af Use a bashism for a minor speedup in gendepends.sh 2009-04-19 16:47:09 +00:00
Roy Marples
bbd810425b Move special umount of tmpfs to the swap init script where it belongs, #149. 2009-04-19 11:15:37 +00:00
Roy Marples
bb6614f4e1 Document rc_nostop, #118 2009-04-19 10:25:38 +00:00
Roy Marples
170547010f Pull /etc/ifconfig.eth0 into interfaces
Reverse list of interfaces when stopping
Improve build for conf.d/network
2009-04-19 08:52:00 +00:00
Roy Marples
3579663173 Don't leak the lock fd. 2009-04-18 19:54:04 +00:00
Roy Marples
802fe9709e Allow user to provide custom status function and still hook into the system one 2009-04-18 10:39:53 +00:00
Roy Marples
657cb3a6eb Fix compile on FreeBSD. 2009-04-18 00:57:17 +00:00
Roy Marples
9225c6cefb Not all systems have the utmp group 2009-04-18 00:56:48 +00:00
Roy Marples
1a2d81751d Support BSDs 2009-04-18 00:56:26 +00:00
Roy Marples
c9e24a0494 Move status to runscript.sh so init scripts can override it, #159
Return 32 if crashed, #163
2009-04-18 00:09:03 +00:00
Roy Marples
d4c71415a9 Add MKOLDNET=yes/no toggle 2009-04-17 23:23:31 +00:00
Roy Marples
ee54bb9372 Using fifos for locking can be error prone.
flocks are safer, as we only use tmpfs for our lock files.

I don't know how this works for inactive just yet though ...
2009-04-17 22:55:11 +00:00
Roy Marples
7138c1532c Typo, thanks to Matthias Schwarzott, #166. 2009-04-17 09:48:34 +00:00
Roy Marples
6027b0ed7d Add a new init script - network
This simply assigns static addresses and an optional default route.
It's possible to add external commands as well, so to create a bonded interface.

Hopefully we can add a few examples to satisfy most of the old net.lo, which
is no longer installed into boot by default.
2009-04-16 23:47:23 +00:00
Roy Marples
95d954e7b5 Improve utmp handling 2009-04-16 23:39:37 +00:00
Roy Marples
744a8bbb4a Don't unmount /bin,/sbin,/lib,/libexec in the very silly cases where they are not on / 2009-04-16 23:34:38 +00:00
Roy Marples
ace0b9653b Avoid needless forking, #165
Thanks to Natanael Copa.
2009-04-16 23:23:21 +00:00
Roy Marples
966ecb24da Add net dependency 2009-04-16 21:02:46 +00:00
Roy Marples
cba9f12715 Simplfy rm matching pattern, thanks to cypherpunks@mailinator.com 2009-04-12 12:59:00 +00:00
Roy Marples
dea9e11a69 When logging, stdout isn't always a tty, which is the case for VPS
systems, Thanks to mwrobel - fixes #106.
2009-04-02 23:55:19 +00:00
Roy Marples
0b12faed7f We should abort boot on some errors. 2009-03-16 21:41:23 +00:00
Roy Marples
34fbf3db2f Add scripts for dhcpcd and wpa_supplicant. 2009-03-05 20:41:07 +00:00
Roy Marples
132dfd7b1e Typo, thanks to Polynomial-C 2009-03-05 00:41:44 +00:00
Roy Marples
077b2d3ba8 Report if service is not executable. 2009-02-28 14:12:19 +00:00
Roy Marples
907ca8a89f Set errno when service does not exist better. 2009-02-28 14:12:03 +00:00
Roy Marples
f38ef00939 Fix unit test. 2009-02-23 10:43:24 +00:00
Roy Marples
66cd081301 Change wipe_tmp_dirs to clean_tmp_dirs so user understands meaning better, #153 2009-02-23 09:36:48 +00:00
Roy Marples
749938d439 Style. 2009-02-23 09:35:57 +00:00
Roy Marples
70d8c5beda Typo, #150
Thanks to betelgeuse
2009-02-13 12:52:29 +00:00
Roy Marples
b60f437b52 Fix the number of terminals to operate on.
Thanks to Dimitrios Christidis <chrjim@gmail.com>
2009-02-13 12:24:32 +00:00
Roy Marples
d6d2635c51 root should respect inittab, #148. 2009-02-12 18:12:57 +00:00
Roy Marples
6cc68e21cf Fix return value for tests. 2009-02-12 10:43:30 +00:00
Roy Marples
9f3cf59818 hostid does not need root to run 2009-02-11 17:42:14 +00:00
Roy Marples
7a628e1db7 Release 0.4.3 2009-02-11 06:54:58 +00:00
Roy Marples
069590d97f Fix unmask option, thanks to douglas@openplans.org, #146 2009-02-10 23:11:17 +00:00
212 changed files with 3749 additions and 2454 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.bz2

View File

@@ -1,12 +1,27 @@
# OpenRC Makefile # OpenRC Makefile
# Copyright 2007-2008 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.4.2
PKG= ${NAME}-${VERSION} SUBDIR= conf.d etc init.d man sh src
# Build our old net foo or not
_OLDNET_SH= case "${MKOLDNET}" in \
[Yy][Ee][Ss]) echo "net doc";; \
*) echo "";; \
esac
_OLDNET!= ${_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})
SUBDIR= conf.d doc etc init.d man net sh src
# We need to ensure that runlevels is done last # We need to ensure that runlevels is done last
SUBDIR+= runlevels SUBDIR+= runlevels
@@ -17,7 +32,9 @@ include ${MK}/sys.mk
include ${MK}/os.mk include ${MK}/os.mk
include ${MK}/subdir.mk include ${MK}/subdir.mk
include ${MK}/dist.mk include ${MK}/dist.mk
include ${MK}/git.mk
_installafter: _installafter:
${INSTALL} -d ${DESTDIR}/${PREFIX}/${RC_LIB}/init.d ${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
${INSTALL} -d ${DESTDIR}/${PREFIX}/${RC_LIB}/tmp ${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp
${ECHO} "${VERSION}${GITVER}" > ${DESTDIR}/${LIBEXECDIR}/version

3
Makefile.inc Normal file
View File

@@ -0,0 +1,3 @@
NAME= openrc
VERSION= 0.5.1
PKG= ${NAME}-${VERSION}

2
README
View File

@@ -11,8 +11,10 @@ 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
PKG_PREFIX=/usr/pkg PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local LOCAL_PREFIX=/usr/local
PREFIX=/usr/local PREFIX=/usr/local

1
conf.d/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
network

View File

@@ -1,7 +1,14 @@
DIR= ${CONFDIR} DIR= ${CONFDIR}
CONF= bootmisc fsck hostname local localmount net urandom CONF= bootmisc fsck hostname local localmount network urandom
TARGETS+= network
CLEANFILES+= network
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}
cp network.in network
[ -e network.${OS} ] && cat network.${OS} >> network || true

View File

@@ -1 +1,3 @@
CONF+= ipfw moused powerd rarpd savecore syscons CONF+= ipfw moused powerd rarpd savecore syscons
network.${OS}:

View File

@@ -1 +1,3 @@
CONF+= moused rarpd savecore CONF+= moused rarpd savecore
network.${OS}:

View File

@@ -1,5 +1,5 @@
# List of /tmp directories we should clean up # List of /tmp directories we should clean up
wipe_tmp_dirs="/tmp" clean_tmp_dirs="/tmp"
# Should we wipe the tmp paths completely or just selectively remove known # Should we wipe the tmp paths completely or just selectively remove known
# locks / files / etc... ? # locks / files / etc... ?

31
conf.d/network.Linux Normal file
View File

@@ -0,0 +1,31 @@
# ifconfig under Linux is not that powerful and doesn't easily handle
# multiple addresses
# 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"
# Create a bonded interface
#interfaces="bond0"
#ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0"
#ifconfig_bond0="192.168.0.10 netmask 255.255.255.0"
#ifdown_bond0="rmmod bonding"
# Create tap interface and a bridge interface.
# We add the tap to the bridge.
# An external program, like dhcpcd, will configure the IP on the bridge
#interfaces="tun0 br0"
#ifup_tun0="tunctl -t \$int"
#ifdown_tun0="tunctl -d \$int"
#ifup_br0="brctl addbr \$int; brctl add \$int eth1; brtctl add \$int eth2"
#ifdown_br0="ifconfig \$int down; btctl delbr \$int"
# Create VLAN
#interfaces="eth0_2 eth0_3 eth0_4"
#ifup_eth0="vconfig add \$int 2; vconfig add \$int 3; vconfig add \$int 4"
#ifconfig_eth0_2="192.168.2.10 netmask 255.255.255.0"
#ifconfig_eth0_3="192.168.3.10 netmask 255.255.255.0"
#ifconfig_eth0_4="192.168.4.10 netmask 255.255.255.0"
#ifdown_eth0="vconfig rem \$int.2; vconfig rem \$int.3; vconfig rem \$int.4"
# Normally you would use wpa_supplicant to configure wireless, but you can
# use iwconfig also
#ifup_wlan0="iwconfig \$int key s:secretkey enc open essid foobar"

28
conf.d/network.in Normal file
View File

@@ -0,0 +1,28 @@
# Assign static IP addresses and run custom scripts per interface.
# Seperate commands with ;
# Prefix with ! to run a shell script.
# Use \$int to represent the interface
#ifconfig_eth0="192.168.0.10 netmask 255.255.255.0"
# You also have ifup_eth0 and ifdown_eth0 to run other commands when
# eth0 is started and stopped.
# 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
# You can assign a default route
#defaultroute="192.168.0.1"
# Lastly, the interfaces variable pulls in virtual interfaces that cannot
# be automatically detected.
#interfaces="br0 bond0 vlan0"
# You can also use files instead of variables here if you like:
# /etc/ifconfig.eth0 is equivalent to ifconfig_eth0
# /etc/ip.eth0 is equivalent to ifconfig_eth0
# /etc/ifup.eth0 is equivalent to ifup_eth0
# /etc/ifdown.eth0 is equivalent to ifdown_eth0
# Any files found will automatically be put into the interfaces variable.
# You don't need to escape variables in files, so use $int instead of \$int.
# If you require DHCP, you should install dhcpcd and it to the boot or
# default runlevel.

1
doc/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
net.example

View File

@@ -992,7 +992,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

3
etc/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
rc.conf
rc
rc.shutdown

View File

@@ -7,12 +7,18 @@
# 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
# patches that fix it without breaking other things! # patches that fix it without breaking other things!
rc_parallel="NO" #rc_parallel="NO"
# 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.
rc_interactive="YES" #rc_interactive="YES"
# If we need to drop to a shell, you can specify it here.
# If not specified we use $SHELL, otherwise the one specified in /etc/passwd,
# otherwise /bin/sh
# Linux users could specify /sbin/sulogin
#rc_shell=/bin/sh
# Do we allow any started service in the runlevel to satisfy the depedency # Do we allow any started service in the runlevel to satisfy the depedency
# or do we want all of them regardless of state? For example, if net.eth0 # or do we want all of them regardless of state? For example, if net.eth0
@@ -20,7 +26,7 @@ rc_interactive="YES"
# both will be started, but services that depend on 'net' will work if either # both will be started, but services that depend on 'net' will work if either
# one comes up. With rc_depend_strict="YES" we would require them both to # one comes up. With rc_depend_strict="YES" we would require them both to
# come up. # come up.
rc_depend_strict="YES" #rc_depend_strict="YES"
# rc_hotplug is a list of services that we allow to be hotplugged. # rc_hotplug is a list of services that we allow to be hotplugged.
# By default we do not allow hotplugging. # By default we do not allow hotplugging.
@@ -38,11 +44,11 @@ rc_depend_strict="YES"
# /var/log/rc.log # /var/log/rc.log
# NOTE: Linux systems require the devfs service to be started before # NOTE: Linux systems require the devfs service to be started before
# logging can take place and as such cannot log the sysinit runlevel. # logging can take place and as such cannot log the sysinit runlevel.
rc_logger="NO" #rc_logger="YES"
# By default we filter the environment for our running scripts. To allow other # By default we filter the environment for our running scripts. To allow other
# variables through, add them here. Use a * to allow all variables through. # variables through, add them here. Use a * to allow all variables through.
# rc_env_allow="VAR1 VAR2" #rc_env_allow="VAR1 VAR2"
# By default we assume that all daemons will start correctly. # By default we assume that all daemons will start correctly.
# However, some do not - a classic example is that they fork and return 0 AND # However, some do not - a classic example is that they fork and return 0 AND
@@ -50,14 +56,24 @@ rc_logger="NO"
# child crashes. You can set the number of milliseconds start-stop-daemon # child crashes. You can set the number of milliseconds start-stop-daemon
# waits to check that the daemon is still running after starting here. # waits to check that the daemon is still running after starting here.
# The default is 0 - no checking. # The default is 0 - no checking.
# rc_start_wait=100 #rc_start_wait=100
# rc_nostop is a list of services which will not stop when changing runlevels.
# This still allows the service itself to be stopped when called directly.
#rc_nostop=""
# rc will attempt to start crashed services by default.
# However, it will not stop them by default as that could bring down other
# critical services.
#rc_crashed_stop=NO
#rc_crashed_start=YES
############################################################################## ##############################################################################
# MISC CONFIGURATION VARIABLES # MISC CONFIGURATION VARIABLES
# There variables are shared between many init scripts # There variables are shared between many init scripts
# 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. # Network fstypes. Below is the default.
net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs" net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"

View File

@@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# Copyright 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.
# Inform RC that we are in the background and hotplugged # Inform RC that we are in the background and hotplugged

View File

@@ -1,5 +1,5 @@
#!@SHELL@ #!@SHELL@
# Copyright 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.
# If $TERM is not set then assume default of @TERM@ # If $TERM is not set then assume default of @TERM@

View File

@@ -1,5 +1,5 @@
#!@SHELL@ #!@SHELL@
# Copyright 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.
# Handle interrupts # Handle interrupts

View File

@@ -1,6 +1,7 @@
DIR= ${INITDIR} DIR= ${INITDIR}
SRCS= avahi-dnsconfd.in avahid.in dbus.in hald.in named.in ntpd.in \ SRCS= avahi-dnsconfd.in avahid.in dhcpcd.in dbus.in \
openvpn.in polkitd.in sshd.in hald.in named.in ntpd.in \
openvpn.in polkitd.in sshd.in wpa_supplicant.in
MK= ../mk MK= ../mk

View File

@@ -1 +1 @@
PREFIX?= /usr/local PKG_PREFIX?= /usr/local

View File

@@ -1 +1 @@
PREFIX=/usr PKG_PREFIX?=/usr

View File

@@ -1 +1 @@
PREFIX?= /usr/pkg PKG_PREFIX?= /usr/pkg

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=@PKG_PREFIX@/sbin/avahi-dnsconfd command=@PKG_PREFIX@/sbin/avahi-dnsconfd
command_args="${avahi_dnsconfd_args} -D" command_args="$avahi_dnsconfd_args -D"
pidfile=@VARBASE@/run/avahi-dnsconfd.pid pidfile=@VARBASE@/run/avahi-dnsconfd.pid
name="Avahi DNS Configuration Daemon" name="Avahi DNS Configuration Daemon"

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=@PKG_PREFIX@/sbin/avahi-daemon command=@PKG_PREFIX@/sbin/avahi-daemon
command_args="${avahid_args} -D" command_args="$avahid_args -D"
pidfile=@VARBASE@/run/avahi-daemon/pid pidfile=@VARBASE@/run/avahi-daemon/pid
name="Avahi Service Advertisement Daemon" name="Avahi Service Advertisement Daemon"

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=@PKG_PREFIX@/bin/dbus-daemon command=@PKG_PREFIX@/bin/dbus-daemon

27
init.d.misc/dhcpcd.in Normal file
View File

@@ -0,0 +1,27 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/sbin/dhcpcd
pidfile=/var/run/dhcpcd.pid
command_args=-q
name="DHCP Client Daemon"
depend()
{
provide net
need localmount
use logger
after bootmisc modules
before dns
}
stop_pre()
{
# When shutting down, kill dhcpcd but preserve network
# We do this as /var/run/dhcpcd could be cleaned out when we
# return to multiuser.
if yesno $RC_GOINGDOWN; then
: ${stopsig:=SIGKILL}
fi
}

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=@PKG_PREFIX@/sbin/dnsmasq command=@PKG_PREFIX@/sbin/dnsmasq
command_args=${dnsmasq_args} command_args=$dnsmasq_args
pidfile=@VARBASE@/run/dnsmasq.pid pidfile=@VARBASE@/run/dnsmasq.pid
required_files=/etc/dnsmasq.conf required_files=/etc/dnsmasq.conf
@@ -18,7 +18,7 @@ depend()
reload() reload()
{ {
ebegin "Reloading ${RC_SVCNAME}" ebegin "Reloading $RC_SVCNAME"
start-stop-daemon --signal SIGHUP --pidfile "${pidfile}" start-stop-daemon --signal SIGHUP --pidfile "$pidfile"
eend $? eend $?
} }

View File

@@ -1,10 +1,10 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=@PKG_PREFIX@/sbin/hald command=@PKG_PREFIX@/sbin/hald
pidfile=@VARBASE@/run/hald/hald.pid pidfile=@VARBASE@/run/hald/hald.pid
command_args="${hald_args}" command_args=$hald_args
name="Hardware Abstraction Layer Daemon" name="Hardware Abstraction Layer Daemon"
depend() depend()

View File

@@ -1,16 +1,16 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=/usr/sbin/named command=/usr/sbin/named
command_args=${named_args} command_args=$named_args
pidfile=@VARBASE@/run/named.pid pidfile=@VARBASE@/run/named.pid
name="Domain Name server" name="Domain Name server"
extra_started_commands="reload" extra_started_commands="reload"
namedb=/etc/namedb namedb=/etc/namedb
uid=named uid=named
case "${RC_UNAME}" in case "$RC_UNAME" in
FreeBSD) FreeBSD)
uid=bind uid=bind
pidfile=@VARBASE@/run/named/pid pidfile=@VARBASE@/run/named/pid
@@ -19,7 +19,7 @@ case "${RC_UNAME}" in
uid=bind uid=bind
;; ;;
esac esac
named_uid=${named_uid:-${uid}} : ${named_uid:=${uid}}
depend() depend()
{ {
@@ -30,68 +30,71 @@ depend()
start_pre() start_pre()
{ {
if [ -n "${named_chroot}" ]; then if [ -n "$named_chroot" ]; then
# Create (or update) the chroot directory structure # Create (or update) the chroot directory structure
if [ -r /etc/mtree/BIND.chroot.dist ]; then if [ -r /etc/mtree/BIND.chroot.dist ]; then
mtree -deU -f /etc/mtree/BIND.chroot.dist -p "${named_chroot}" mtree -deU -f /etc/mtree/BIND.chroot.dist -p "$named_chroot"
else else
ewarn "/etc/mtree/BIND.chroot.dist missing," ewarn "/etc/mtree/BIND.chroot.dist missing,"
ewarn "chroot directory structure not updated" ewarn "chroot directory structure not updated"
fi fi
if [ ! -d "${named_chroot}"/. ]; then if [ ! -d "$named_chroot"/. ]; then
eerror "chroot directory ${named_chroot} missing" eerror "chroot directory $named_chroot missing"
exit 1 exit 1
fi fi
# Create /etc/namedb symlink # Create /etc/namedb symlink
if [ ! -L "${namedb}" ]; then if [ ! -L "$namedb" ]; then
if [ -d "${namedb}" ]; then if [ -d "$namedb" ]; then
ewarn "named chroot: ${namedb} is a directory!" ewarn "named chroot: $namedb is a directory!"
elif [ -e "${namedb}" ]; then elif [ -e "$namedb" ]; then
ewarn "named chroot: ${namedb} exists!" ewarn "named chroot: $namedb exists!"
else else
ln -s "${named_chroot}${namedb}" "${namedb}" ln -s "$named_chroot$namedb" "$namedb"
fi fi
else else
# Make sure it points to the right place. # Make sure it points to the right place.
ln -shf "${named_chroot}${namedb}" "${namedb}" ln -shf "$named_chroot$namedb" "$namedb"
fi fi
case "${RC_UNAME}" in case "$RC_UNAME" in
*BSD|DragonFly) *BSD|DragonFly)
# Mount a devfs in the chroot directory if needed # Mount a devfs in the chroot directory if needed
umount "${named_chroot}"/dev 2>/dev/null umount "$named_chroot"/dev 2>/dev/null
mount -t devfs dev "${named_chroot}"/dev mount -t devfs dev "$named_chroot"/dev
devfs -m "${named_chroot}"/dev ruleset devfsrules_hide_all devfs -m "$named_chroot"/dev \
devfs -m "${named_chroot}"/dev rule apply path null unhide ruleset devfsrules_hide_all
devfs -m "${named_chroot}"/dev rule apply path random unhide devfs -m "$named_chroot"/dev \
rule apply path null unhide
devfs -m "$named_chroot"/dev \
rule apply path random unhide
;; ;;
esac esac
# Copy local timezone information if it is not up to date. # Copy local timezone information if it is not up to date.
if [ -r /etc/localtime ]; then if [ -r /etc/localtime ]; then
cmp -s /etc/localtime "${named_chroot}/etc/localtime" || cmp -s /etc/localtime "$named_chroot/etc/localtime" ||
cp -p /etc/localtime "${named_chroot}/etc/localtime" cp -p /etc/localtime "$named_chroot/etc/localtime"
fi fi
command_args="${command_args} -t ${named_chroot}" command_args="$command_args -t $named_chroot"
ln -fs "${named_chroot}${pidfile}" "${pidfile}" ln -fs "$named_chroot$pidfile" "$pidfile"
fi fi
if [ ! -s "${named_chroot}${namedb}/rndc.conf" ]; then if [ ! -s "$named_chroot$namedb/rndc.conf" ]; then
local confgen="${command%/named}/rndc-confgen -a -b256 -u ${named_uid} \ local confgen="${command%/named}/rndc-confgen -a -b256 -u $named_uid \
-c ${named_chrootdir}/etc/namedb/rndc.key" -c $named_chrootdir/etc/namedb/rndc.key"
if [ -s "${named_chroot}${namedb}/rndc.key" ]; then if [ -s "$named_chroot$namedb/rndc.key" ]; then
local getuser="stat -f%Su" local getuser="stat -f%Su"
[ "${RC_UNAME}" = "Linux" ] && getuser="stat -c%U" [ "$RC_UNAME" = Linux ] && getuser="stat -c%U"
case $(${getuser} "${named_chroot}${namedb}"/rndc.key) in case $(${getuser} "$named_chroot$namedb"/rndc.key) in
root|"${named_uid}");; root|"$named_uid");;
*) ${confgen};; *) $confgen;;
esac esac
else else
${confgen} $confgen
fi fi
fi fi
} }
@@ -103,7 +106,7 @@ reload()
stop_post() stop_post()
{ {
if [ -n "${named_chroot}" -a -c "${named_chroot}"/dev/null ]; then if [ -n "$named_chroot" -a -c "$named_chroot"/dev/null ]; then
umount "${named_chroot}"/dev 2>/dev/null || true umount "$named_chroot"/dev 2>/dev/null || true
fi fi
} }

View File

@@ -1,13 +1,14 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
ntpd_config=${ntpd_config:-/etc/ntp.conf} : ${ntpd_config:=/etc/ntp.conf}
ntpd_drift=${ntpd_drift:-/var/db/ntpd.drift} : ${ntpd_drift:=/var/db/ntpd.drift}
command=/usr/sbin/ntpd command=/usr/sbin/ntpd
required_files=$ntpd_config
pidfile=/var/run/ntpd.pid pidfile=/var/run/ntpd.pid
command_args="${ntpd_args} -c ${ntpd_config} -f ${ntpd_drift} -p ${pidfile}" command_args="$ntpd_args -c $ntpd_config -f $ntpd_drift -p $pidfile"
name="Network Time Protocol Daemon" name="Network Time Protocol Daemon"
depend() depend()
@@ -19,22 +20,18 @@ depend()
start_pre() start_pre()
{ {
if [ ! -r "${ntpd_config}" ]; then if [ -n "$ntpd_chroot" ]; then
eerror "${ntpd_config} is not readable" case "$RC_UNAME" in
return 1
fi
if [ -n "${ntpd_chroot}" ]; then
case "${RC_UNAME}" in
*BSD|DragonFly) *BSD|DragonFly)
if [ ! -c "${ntpd_chroot}/dev/clockctl" ]; then if [ ! -c "$ntpd_chroot/dev/clockctl" ]; then
rm -f "${ntpd_chroot}/dev/clockctl" rm -f "$ntpd_chroot/dev/clockctl"
(cd /dev; /bin/pax -rw -pe clockctl "${ntpd_chroot}/dev") (cd /dev; /bin/pax -rw -pe clockctl \
"$ntpd_chroot/dev")
fi fi
;; ;;
esac esac
ln -fs "${ntpd_chroot}${ntpd_drift}" "${ntpd_drift}" ln -fs "$ntpd_chroot$ntpd_drift" "$ntpd_drift"
command_args="${command_args} -u ntpd:ntpd -i ${ntpd_chroot}" command_args="$command_args -u ntpd:ntpd -i $ntpd_chroot"
fi fi
} }

View File

@@ -1,31 +1,32 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
vpn=${RC_SVCNAME#*.} vpn=${RC_SVCNAME#*.}
name="OpenVPN" name="OpenVPN"
[ "${vpn}" != "openvpn" ] && name="${name} (${vpn})" [ "$vpn" != openvpn ] && name="$name ($vpn)"
command=@PKG_PREFIX@/sbin/openvpn command=@PKG_PREFIX@/sbin/openvpn
pidfile=@VARBASE@/run/"${RC_SVCNAME}".pid pidfile=@VARBASE@/run/"$RC_SVCNAME".pid
openvpn_dir=${openvpn_dir:-@PKG_PREFIX@/etc/openvpn} : ${openvpn_dir:=@PKG_PREFIX@/etc/openvpn}
openvpn_config=${openvpn_config:-${openvpn_dir}/${vpn}.conf} : ${openvpn_config:=$openvpn_dir/$vpn.conf}
command_args="${openvpn_args} --daemon --config ${openvpn_config} --writepid ${pidfile}" command_args="$openvpn_args --daemon --config $openvpn_config"
required_dirs="${openvpn_dir}" command_args="$command_args --writepid $pidfile"
required_files="${openvpn_config}" required_dirs=$openvpn_dir
required_files=$openvpn_config
# If we're an openvpn client, then supply a nice default config # If we're an openvpn client, then supply a nice default config
# You can find sample up/down scripts in the OpenRC support/openvpn dir # You can find sample up/down scripts in the OpenRC support/openvpn dir
if yesno "${openvpn_client}"; then if yesno $openvpn_client; then
openvpn_up=${openvpn_up:-${openvpn_dir}/up.sh} : ${openvpn_up:=${openvpn_dir}/up.sh}
openvpn_down=${openvpn_down:-${openvpn_dir}/down.sh} : ${openvpn_down:=${openvpn_dir}/down.sh}
command_args="${command_args} --nobind --up-delay --up-restart --down-pre" command_args="$command_args --nobind --up-delay --up-restart --down-pre"
command_args="${command_args} --up ${openvpn_up}" command_args="$command_args --up $openvpn_up"
command_args="${command_args} --down ${openvpn_down}" command_args="$command_args --down $openvpn_down"
required_files="${required_files} ${openvpn_up} ${openvpn_down}" required_files="$required_files $openvpn_up $openvpn_down"
in_background_fake="start stop" in_background_fake="start stop"
start_inactive="YES" start_inactive=YES
fi fi
depend() depend()
@@ -38,7 +39,7 @@ depend()
start_pre() start_pre()
{ {
# Linux has good dynamic tun/tap creation # Linux has good dynamic tun/tap creation
if [ "${RC_UNAME}" = "Linux" ]; then if [ "$RC_UNAME" = Linux ]; then
if [ ! -e /dev/net/tun ]; then if [ ! -e /dev/net/tun ]; then
if ! modprobe tun; then if ! modprobe tun; then
eerror "TUN/TAP support is not available in this kernel" eerror "TUN/TAP support is not available in this kernel"
@@ -60,8 +61,7 @@ start_pre()
fi fi
# If the config file does not specify the cd option, we do # If the config file does not specify the cd option, we do
# But if we specify it, we override the config option which we do not want if ! grep -q "^[ \t]*cd[ \t].*" "$openvpn_config"; then
if ! grep -q "^[ \t]*cd[ \t].*" "${openvpn_config}"; then command_args="$command_args --cd $openvpn_dir"
command_args="${command_args} --cd ${openvpn_dir}"
fi fi
} }

View File

@@ -1,10 +1,10 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=@PKG_PREFIX@/sbin/polkitd command=@PKG_PREFIX@/sbin/polkitd
pidfile=@VARBASE@/run/polkitd/polkitd.pid pidfile=@VARBASE@/run/polkitd/polkitd.pid
command_args="${polkitd_args}" command_args="$polkitd_args"
name="PolicyKit Daemon" name="PolicyKit Daemon"
depend() depend()

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=/usr/sbin/sshd command=/usr/sbin/sshd
command_args=${sshd_args} command_args=$sshd_args
pidfile=@VARBASE@/run/sshd.pid pidfile=@VARBASE@/run/sshd.pid
required_files=/etc/ssh/sshd_config required_files=/etc/ssh/sshd_config
@@ -31,5 +31,5 @@ start_pre()
eend $? || return 1 eend $? || return 1
fi fi
${command} -t $command -t
} }

View File

@@ -0,0 +1,70 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/wpa_supplicant
: ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf}
wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if
command_args="$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supplicant_if"
name="WPA Supplicant Daemon"
depend()
{
need localmount
use logger
after bootmisc modules
before dns dhcpcd net
keyword -shutdown
}
find_wireless()
{
local iface=
case "$RC_UNAME" in
Linux)
for iface in /sys/class/net/*; do
if [ -e "$iface"/wireless -o \
-e "$iface"/phy80211 ]
then
echo "${iface##*/}"
return 0
fi
done
;;
*)
for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do
if ifconfig "${iface##*/}" 2>/dev/null | \
grep -q "[ ]*ssid "
then
echo "${iface##*/}"
return 0
fi
done
;;
esac
return 1
}
append_wireless()
{
local iface= i=
iface=$(find_wireless)
if [ -n "$iface" ]; then
for i in $iface; do
command_args="$command_args -i$i"
done
else
eerror "Could not find a wireless interface"
fi
}
start_pre()
{
case " $command_args" in
*" -i"*) ;;
*) append_wireless;;
esac
}

40
init.d/.gitignore vendored Normal file
View File

@@ -0,0 +1,40 @@
bootmisc
fsck
hostname
local
localmount
moused
net.lo
net.lo0
netmount
network
root
savecache
swap
sysctl
urandom
devfs
dmesg
hwclock
consolefont
keymaps
killprocs
modules
mount-ro
mtab
numlock
procfs
sysfs
devdb
hostid
newsyslog
pf
rarpd
rc-enabled
rpcbind
savecore
swap-blk
syslogd
termencoding
ttys
wscons

View File

@@ -1,16 +1,26 @@
DIR= ${INITDIR} DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in \ SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
netmount.in root.in savecache.in swap.in sysctl.in urandom.in network.in root.in savecache.in swap.in sysctl.in urandom.in
BIN= ${OBJS} BIN= ${OBJS}
INSTALLAFTER= _installafter # Build our old net foo or not
CLEANFILES+= net.lo _OLDNET_SH= case "${MKOLDNET}" in \
TARGETS+= net.lo [Yy][Ee][Ss]) echo "net.lo";; \
*) echo "";; \
esac
_OLDNET!= ${_OLDNET_SH}
_NET_LO= ${_OLDNET}$(shell ${_OLDNET_SH})
INSTALLAFTER= _installafter_${_NET_LO}
CLEANFILES+= ${_NET_LO}
TARGETS+= ${_NET_LO}
MK= ../mk MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
include Makefile.${OS} include Makefile.${OS}
include ${MK}/scripts.mk include ${MK}/scripts.mk
_installafter: realinstall _installafter_: realinstall
_installafter_net.lo: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO} ${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
extra_commands="save" extra_commands="save"
@@ -7,8 +7,8 @@ extra_commands="save"
description="Sets the local clock to UTC or Local Time." description="Sets the local clock to UTC or Local Time."
description_save="Saves the current time in the BIOS." description_save="Saves the current time in the BIOS."
clock=${clock:-${CLOCK:-UTC}} : ${clock:=${CLOCK:-UTC}}
if [ "${clock}" = "UTC" ]; then if [ "$clock" = "UTC" ]; then
utc="UTC" utc="UTC"
else else
utc="Local Time" utc="Local Time"
@@ -18,17 +18,17 @@ depend()
{ {
provide clock provide clock
# BSD adjkerntz needs to be able to write to /etc # BSD adjkerntz needs to be able to write to /etc
if [ "${clock}" = "UTC" -a -e /etc/wall_cmos_clock ] || if [ "$clock" = "UTC" -a -e /etc/wall_cmos_clock ] ||
[ "${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()
{ {
ebegin "Starting the System Clock Adjuster [${utc}]" ebegin "Starting the System Clock Adjuster [${utc}]"
if [ "${clock}" != "UTC" ]; then if [ "$clock" != "UTC" ]; then
echo >/etc/wall_cmos_clock echo >/etc/wall_cmos_clock
start-stop-daemon --start --exec /sbin/adjkerntz -- -i start-stop-daemon --start --exec /sbin/adjkerntz -- -i
else else
@@ -48,8 +48,8 @@ save()
stop() stop()
{ {
# Don't tweak the hardware clock on LiveCD halt. # Don't tweak the hardware clock on LiveCD halt.
if yesno "${clock_systohc:-${CLOCK_SYSTOHC}}"; then if yesno "${clock_systohc:-$CLOCK_SYSTOHC}"; then
[ -z "${CDBOOT}" ] && save [ -z "$CDBOOT" ] && save
fi fi
ebegin "Stopping the System Clock Adjuster" ebegin "Stopping the System Clock Adjuster"

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
depend() depend()
@@ -8,7 +8,7 @@ depend()
need localmount need localmount
before logger before logger
after clock sysctl after clock sysctl
keyword noprefix keyword -prefix
} }
dir_writeable() dir_writeable()
@@ -16,25 +16,27 @@ dir_writeable()
mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$ mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
} }
: ${wipe_tmp:=${WIPE_TMP:-yes}}
cleanup_tmp_dir() cleanup_tmp_dir()
{ {
local dir="$1" local dir="$1"
if ! [ -d "${dir}" ]; then if ! [ -d "$dir" ]; then
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:-${WIPE_TMP:-yes}}; then if yesno $wipe_tmp; then
ebegin "Wiping ${dir} directory" ebegin "Wiping $dir directory"
local startopts="-x . -depth" local startopts="-x . -depth"
[ "${RC_UNAME}" = Linux ] && startopts=". -xdev -depth" [ "$RC_UNAME" = Linux ] && startopts=". -xdev -depth"
# Faster than find # Faster than find
rm -rf -- [b-ikm-pr-zA-Z0-9\.]* rm -rf -- [^ajlq\.]*
find ${startopts} ! -name . \ find $startopts ! -name . \
! -path "./lost+found" \ ! -path "./lost+found" \
! -path "./lost+found/*" \ ! -path "./lost+found/*" \
! -path "./quota.user" \ ! -path "./quota.user" \
@@ -52,23 +54,35 @@ cleanup_tmp_dir()
-exec rm -rf {} \; -exec rm -rf {} \;
eend 0 eend 0
else else
ebegin "Cleaning ${dir} directory" ebegin "Cleaning $dir directory"
rm -rf -- "${dir}"/.X*-lock "${dir}"/esrv* "${dir}"/kio* \ rm -rf -- "$dir"/.X*-lock "$dir"/esrv* "$dir"/kio* \
"${dir}"/jpsock.* "${dir}"/.fam* "${dir}"/.esd* \ "$dir"/jpsock.* "$dir"/.fam* "$dir"/.esd* \
"${dir}"/orbit-* "${dir}"/ssh-* "${dir}"/ksocket-* \ "$dir"/orbit-* "$dir"/ssh-* "$dir"/ksocket-* \
"${dir}"/.*-unix "$dir"/.*-unix
eend 0 eend 0
fi fi
} }
mkutmp()
{
: >"$1"
# Not all systems have the utmp group
chgrp utmp "$1" 2>/dev/null
chmod 0664 "$1"
}
start() start()
{ {
local logw=false # Remove any added console dirs
rm -rf "$RC_LIBEXECDIR"/console
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
if ! [ -d "${x}" ]; then for x in /var/log /var/run /tmp $extra; do
if ! mkdir -p "${x}"; then if ! [ -d $x ]; then
eend 1 "failed to create needed directory ${x}" if ! mkdir -p $x; then
eend 1 "failed to create needed directory $x"
return 1 return 1
fi fi
fi fi
@@ -76,15 +90,12 @@ start()
if dir_writeable /var/run; then if dir_writeable /var/run; then
ebegin "Creating user login records" ebegin "Creating user login records"
cp /dev/null /var/run/utmp local xtra=
chgrp utmp /var/run/utmp [ "$RC_UNAME" = NetBSD ] && xtra=x
chmod 0664 /var/run/utmp for x in "" $xtra; do
if dir_writeable /var/log; then mkutmp /var/run/utmp$x
logw=true done
[ -e /var/log/wtmp ] || cp /dev/null /var/log/wtmp [ -e /var/log/wtmp ] && mkutmp /var/log/wtmp
chgrp utmp /var/log/wtmp
chmod 0664 /var/log/wtmp
fi
eend 0 eend 0
ebegin "Cleaning /var/run" ebegin "Cleaning /var/run"
@@ -93,30 +104,30 @@ start()
! -name ld-elf.so.hints ! -name ld.so.hints); ! -name ld-elf.so.hints ! -name ld.so.hints);
do do
# 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
fi fi
[ ! -f "${x}" ] && continue [ ! -f "$x" ] && continue
# Do not remove pidfiles of already running daemons # Do not remove pidfiles of already running daemons
case "${x}" in case "$x" in
*.pid) *.pid)
start-stop-daemon --test --quiet \ start-stop-daemon --test --quiet \
--stop --pidfile "${x}" && continue --stop --pidfile "$x" && continue
;; ;;
esac esac
rm -f -- "${x}" rm -f -- "$x"
done done
eend 0 eend 0
fi fi
# Clean up /tmp directories # Clean up /tmp directories
local tmp= local tmp=
for tmp in ${wipe_tmp_dirs-/tmp}; do for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do
cleanup_tmp_dir "${tmp}" cleanup_tmp_dir "$tmp"
done done
if dir_writeable /tmp; then if dir_writeable /tmp; then
@@ -126,28 +137,30 @@ start()
rm -rf /tmp/.ICE-unix /tmp/.X11-unix rm -rf /tmp/.ICE-unix /tmp/.X11-unix
mkdir -p /tmp/.ICE-unix /tmp/.X11-unix mkdir -p /tmp/.ICE-unix /tmp/.X11-unix
chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix
[ -x /sbin/restorecon ] && restorecon /tmp/.ICE-unix /tmp/.X11-unix if [ -x /sbin/restorecon ]; then
restorecon /tmp/.ICE-unix /tmp/.X11-unix
fi
fi fi
if ${logw} || dir_writeable /var/log; then if $logw || dir_writeable /var/log; then
# Create an 'after-boot' dmesg log # Create an 'after-boot' dmesg log
if [ "${RC_SYS}" != VSERVER -a "${RC_SYS}" != OPENVZ ]; then if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
dmesg > /var/log/dmesg dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg chmod 640 /var/log/dmesg
fi fi
fi fi
rm -f /etc/nologin [ -w /etc/nologin ] && rm -f /etc/nologin
return 0 return 0
} }
stop() stop()
{ {
# Write a halt record if we're shutting down # Write a halt record if we're shutting down
if [ "${RC_RUNLEVEL}" = shutdown ]; then if [ "$RC_RUNLEVEL" = shutdown ]; then
[ "${RC_UNAME}" = Linux ] && halt -w [ "$RC_UNAME" = Linux ] && halt -w
if [ "${RC_SYS}" = OPENVZ ]; then if [ "$RC_SYS" = OPENVZ ]; then
yesno ${RC_REBOOT} && printf "" >/reboot yesno $RC_REBOOT && printf "" >/reboot
fi fi
fi fi

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Sets a font for the consoles." description="Sets a font for the consoles."
@@ -7,27 +7,24 @@ description="Sets a font for the consoles."
depend() depend()
{ {
need localmount termencoding need localmount termencoding
after hotplug after hotplug bootmisc
keyword noopenvz noprefix nouml novserver noxenu keyword -openvz -prefix -uml -vserver -xenu
} }
start() start()
{ {
# Forget about any font until we are successful
rm -rf "${RC_LIBDIR}"/console
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
consolefont=${consolefont:-${CONSOLEFONT}} consolefont=${consolefont:-${CONSOLEFONT}}
unicodemap=${unicodemap:-${UNICODEMAP}} unicodemap=${unicodemap:-${UNICODEMAP}}
consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}} consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}}
if [ -z "${consolefont}" ]; then if [ -z "$consolefont" ]; then
ebegin "Using the default console font" ebegin "Using the default console font"
eend 0 eend 0
return 0 return 0
fi fi
if [ "${ttyn}" = 0 ]; then if [ "$ttyn" = 0 ]; then
ebegin "Skipping font setup (rc_tty_number == 0)" ebegin "Skipping font setup (rc_tty_number == 0)"
eend 0 eend 0
return 0 return 0
@@ -36,39 +33,41 @@ start()
local x= param= sf_param= retval=0 ttydev=/dev/tty local x= param= sf_param= retval=0 ttydev=/dev/tty
# Get additional parameters # Get additional parameters
if [ -n "${consoletranslation}" ]; then if [ -n "$consoletranslation" ]; then
param="${param} -m ${consoletranslation}" param="$param -m $consoletranslation"
fi fi
if [ -n "${unicodemap}" ]; then if [ -n "${unicodemap}" ]; then
param="${param} -u ${unicodemap}" param="$param -u $unicodemap"
fi fi
# Set the console font # Set the console font
ebegin "Setting console font [${consolefont}]" ebegin "Setting console font [$consolefont]"
[ -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
x=$((${x} + 1)) break
fi
x=$(($x + 1))
done done
eend ${retval} eend $retval
# Store the last font so we can use it ASAP on boot # Store the last font so we can use it ASAP on boot
if [ ${retval} -eq 0 -a -w "${RC_LIBDIR}" ]; then if [ $retval -eq 0 -a -w "$RC_LIBEXECDIR" ]; then
mkdir -p "${RC_LIBDIR}"/console mkdir -p "$RC_LIBEXECDIR"/console
for font in /usr/share/consolefonts/"${consolefont}".*; do for font in /usr/share/consolefonts/"$consolefont".*; do
: :
done done
cp "${font}" "${RC_LIBDIR}"/console cp "$font" "$RC_LIBEXECDIR"/console
echo "${font##*/}" > "${RC_LIBDIR}"/console/font echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font
if yesno ${unicode:-${UNICODE}}; then if yesno ${unicode:-${UNICODE}}; then
echo "" > "${RC_LIBDIR}"/console/unicode echo "" > "$RC_LIBEXECDIR"/console/unicode
else else
rm -f "${RC_LIBDIR}"/console/unicode rm -f "$RC_LIBEXECDIR"/console/unicode
fi fi
fi fi
return ${retval} return $retval
} }

View File

@@ -1,16 +1,16 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=/sbin/devd command=/sbin/devd
command_args=${devd_args} command_args=$devd_args
name="Device State Change Daemon" name="Device State Change Daemon"
depend() { 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() {

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2008 Roy Marples <roy@marples.name> # Copyright (c) 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.
description="Creates the dev database" description="Creates the dev database"

View File

@@ -1,12 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Mount system critical filesystems in /dev." description="Mount system critical filesystems in /dev."
depend() { depend() {
use dev use dev
keyword noprefix novserver keyword -prefix -vserver
} }
start() { start() {
@@ -15,19 +15,19 @@ start() {
"devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \ "devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \
"tmpfs /dev/shm 1777 ,nodev shm" \ "tmpfs /dev/shm 1777 ,nodev shm" \
; do ; do
set -- ${x} set -- $x
grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue
mountinfo -q "$2" && continue mountinfo -q $2 && continue
if [ ! -d "$2" ]; then if [ ! -d $2 ]; then
mkdir -m "$3" -p "$2" >/dev/null 2>&1 || \ mkdir -m $3 -p $2 >/dev/null 2>&1 || \
ewarn "Could not create $2!" ewarn "Could not create $2!"
fi fi
if [ -d "$2" ]; then if [ -d $2 ]; then
ebegin "Mounting $2" ebegin "Mounting $2"
if ! fstabinfo --mount "$2"; then if ! fstabinfo --mount $2; then
mount -n -t "$1" -o noexec,nosuid"$4" "$5" "$2" mount -n -t $1 -o noexec,nosuid$4 $5 $2
fi fi
eend $? eend $?
fi fi

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Set the dmesg level for a cleaner boot" description="Set the dmesg level for a cleaner boot"
@@ -7,12 +7,12 @@ description="Set the dmesg level for a cleaner boot"
depend() depend()
{ {
before dev modules before dev modules
keyword novserver keyword -vserver
} }
start() start()
{ {
if [ -n "${dmesg_level}" ]; then if [ -n "$dmesg_level" ]; then
dmesg -n"${dmesg_level}" dmesg -n$dmesg_level
fi fi
} }

View File

@@ -1,18 +1,18 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Configures a specific kernel dump device." description="Configures a specific kernel dump device."
depend() { depend() {
need swap need swap
keyword nojail noprefix keyword -jail -prefix
} }
start() { start() {
# Setup any user requested dump device # Setup any user requested dump device
if [ -n "${dump_device}" ]; then if [ -n "$dump_device" ]; then
ebegin "Activating kernel core dump device (${dump_device})" ebegin "Activating kernel core dump device ($dump_device)"
dumpon ${dump_device} dumpon ${dump_device}
eend $? eend $?
fi fi

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Check and repair filesystems according to /etc/fstab" description="Check and repair filesystems according to /etc/fstab"
@@ -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
} }
_abort() { _abort() {
@@ -19,7 +19,7 @@ _abort() {
# We should only reboot when first booting # We should only reboot when first booting
_reboot() { _reboot() {
if [ "${RC_RUNLEVEL}" = "${RC_BOOTLEVEL}" ]; then if [ "$RC_RUNLEVEL" = "$RC_BOOTLEVEL" ]; then
reboot "$@" reboot "$@"
_abort || return 1 _abort || return 1
fi fi
@@ -30,6 +30,38 @@ _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
elif sysctl -q hw.acpi.acline >/dev/null 2>/dev/null; then
case $(sysctl -n hw.acpi.acline) in
0) return 1;;
*) return 0;;
esac
else
return 0
fi
[ $? != 128 ]
}
start() start()
{ {
local fsck_opts= p= check_extra= local fsck_opts= p= check_extra=
@@ -39,48 +71,53 @@ start()
return 0 return 0
fi fi
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
ewarn "Skipping fsck due to not being on AC power"
return 0
fi fi
if [ -n "${fsck_passno}" ]; then if [ -n "$fsck_passno" ]; then
check_extra="[passno ${fsck_passno}] ${check_extra}" check_extra="[passno $fsck_passno] $check_extra"
fi fi
ebegin "Checking local filesystems ${check_extra}" ebegin "Checking local filesystems $check_extra"
for p in ${fsck_passno}; do for p in $fsck_passno; do
local IFS="${_IFS}" local IFS="$_IFS"
case "${p}" in case "$p" in
[0-9]*) p="=${p}";; [0-9]*) p="=$p";;
esac esac
set -- "$@" $(fstabinfo --passno "${p}") set -- "$@" $(fstabinfo --passno "$p")
unset IFS unset IFS
done done
if [ "${RC_UNAME}" = "Linux" ]; then if [ "$RC_UNAME" = Linux ]; then
fsck_opts="${fsck_opts} -C0 -T" fsck_opts="$fsck_opts -C0 -T"
if [ -z "${fsck_passno}" ]; then if [ -z "$fsck_passno" ]; then
fsck_args=${fsck_args--A -p} fsck_args=${fsck_args--A -p}
if echo 2>/dev/null >/.test.$$; then if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$ rm -f /.test.$$
fsck_opts="${fsck_opts} -R" fsck_opts="$fsck_opts -R"
fi fi
fi fi
fi fi
trap : INT QUIT trap : INT QUIT
fsck ${fsck_args--p} ${fsck_opts} "$@" fsck ${fsck_args--p} $fsck_opts "$@"
case $? in case $? in
0) eend 0; return 0;; 0) eend 0; return 0;;
1) ewend 1 "Filesystems repaired"; return 0;; 1) ewend 1 "Filesystems repaired"; return 0;;
2|3) if [ "${RC_UNAME}" = "Linux" ]; then 2|3) if [ "$RC_UNAME" = Linux ]; then
ewend 1 "Filesystems repaired, but reboot needed" ewend 1 "Filesystems repaired, but reboot needed"
_reboot -f _reboot -f
else else
ewend 1 "Filesystems still have errors; manual fsck required" ewend 1 "Filesystems still have errors;" \
"manual fsck required"
_abort
fi;; fi;;
4) if [ "${RC_UNAME}" = "Linux" ]; then 4) if [ "$RC_UNAME" = Linux ]; then
ewend 1 "Fileystem errors left uncorrected" ewend 1 "Fileystem errors left uncorrected, aborting"
return 0 _abort
else else
ewend 1 "Filesystems repaired, but reboot needed" ewend 1 "Filesystems repaired, but reboot needed"
_reboot _reboot
@@ -99,6 +136,6 @@ stop()
_reboot() { return 0; } _reboot() { return 0; }
_forcefsck() { return 1; } _forcefsck() { return 1; }
yesno "${fsck_shutdown}" && start yesno $fsck_shutdown && start
return 0 return 0
} }

View File

@@ -1,15 +1,15 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
extra_commands="reset" extra_commands="reset"
hostid_file=${hostid_file:-/etc/hostid} : ${hostid_file:=/etc/hostid}
depend() depend()
{ {
need root use root
before devd net before devd net
keyword nojail noprefix keyword -jail -prefix
} }
_set() _set()
@@ -20,14 +20,14 @@ _set()
id=$(echo "$1" | md5) id=$(echo "$1" | md5)
id="0x${id%????????????????????????}" id="0x${id%????????????????????????}"
fi fi
ebegin "Setting Host ID: ${id}" ebegin "Setting Host ID: $id"
sysctl -w kern.hostid="${id}" >/dev/null sysctl -w kern.hostid="$id" >/dev/null
eend $? || return 1 eend $? || return 1
if sysctl -n kern.hostuuid >/dev/null 2>&1; then if sysctl -n kern.hostuuid >/dev/null 2>&1; then
[ -n "$1" ] && id=$1 [ -n "$1" ] && id=$1
ebegin "Setting Host UUID: ${id}" ebegin "Setting Host UUID: $id"
sysctl kern.hostuuid="${id}" >/dev/null sysctl kern.hostuuid="$id" >/dev/null
eend $? || return 1 eend $? || return 1
fi fi
@@ -38,37 +38,37 @@ _set()
# otherwise we generate a random UUID. # otherwise we generate a random UUID.
reset() reset()
{ {
local uuid= x="[0-9a-f]" y="${x}${x}${x}${x}" local uuid= x="[0-9a-f]" y="$x$x$x$x"
if type kenv >/dev/null 2>&1; then if type kenv >/dev/null 2>&1; then
uuid=$(kenv smbios.system.uuid 2>/dev/null) uuid=$(kenv smbios.system.uuid 2>/dev/null)
fi fi
case "${uuid}" in case "$uuid" in
${y}${y}-${y}-${y}-${y}-${y}${y}${y});; $y$y-$y-$y-$y-$y$y$y);;
*) uuid=;; *) uuid=;;
esac esac
if [ -n "${uuid}" ]; then if [ -n "$uuid" ]; then
rm -f "${hostid_file}" rm -f "$hostid_file"
else else
uuid=$(uuidgen) uuid=$(uuidgen)
if [ -z "${uuid}" ]; then if [ -z "$uuid" ]; then
eerror "Unable to generate a UUID" eerror "Unable to generate a UUID"
return 1 return 1
fi fi
if ! echo "${uuid}" > "${hostid_file}"; then if ! echo "$uuid" >"$hostid_file"; then
eerror "Failed to store UUID in \`${hostid_file}'" eerror "Failed to store UUID in \`$hostid_file'"
return 1 return 1
fi fi
fi fi
_set "${uuid}" _set "$uuid"
} }
start() start()
{ {
if [ -r "${hostid_file}" ]; then if [ -r "$hostid_file" ]; then
_set $(cat "${hostid_file}") _set $(cat "$hostid_file")
else else
reset reset
fi fi

View File

@@ -1,17 +1,17 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Sets the hostname of the machine." description="Sets the hostname of the machine."
depend() { depend() {
keyword noprefix keyword -prefix
} }
start() start()
{ {
hostname=${hostname-${HOSTNAME-localhost}} hostname=${hostname-${HOSTNAME-localhost}}
ebegin "Setting hostname to ${hostname}" ebegin "Setting hostname to $hostname"
hostname "${hostname}" hostname "$hostname"
eend $? "Failed to set the hostname" eend $? "Failed to set the hostname"
} }

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
extra_commands="save show" extra_commands="save show"
@@ -8,12 +8,11 @@ description="Sets the local clock to UTC or Local Time."
description_save="Saves the current time in the BIOS." description_save="Saves the current time in the BIOS."
description_show="Displays the current time in the BIOS." description_show="Displays the current time in the BIOS."
clock_adjfile=${clock_adjfile:-${CLOCK_ADJFILE}} : ${clock_adjfile:=${CLOCK_ADJFILE}}
clock_args=${clock_args:-${CLOCK_OPTS}} : ${clock_args:=${CLOCK_OPTS}}
clock_systohc=${clock_systohc:-${CLOCK_SYSTOHC}} : ${clock_systohc:=${CLOCK_SYSTOHC}}
: ${clock:=${CLOCK:-UTC}}
clock=${clock:-${CLOCK:-UTC}} if [ "$clock" = "UTC" ]; then
if [ "${clock}" = "UTC" ]; then
utc="UTC" utc="UTC"
utc_cmd="--utc" utc_cmd="--utc"
else else
@@ -24,12 +23,12 @@ fi
depend() depend()
{ {
provide clock provide clock
if yesno ${clock_adjfile}; then if yesno $clock_adjfile; then
use root use root
else else
before * before *
fi fi
keyword noopenvz noprefix nouml novserver noxenu keyword -openvz -prefix -uml -vserver -xenu
} }
setupopts() setupopts()
@@ -47,7 +46,7 @@ setupopts()
;; ;;
esac esac
case "${utc}" in case "$utc" in
UTC|Local" "Time);; UTC|Local" "Time);;
*) unset utc_cmd;; *) unset utc_cmd;;
esac esac
@@ -58,7 +57,7 @@ _hwclock()
{ {
local err="$(hwclock "$@" 2>&1 >/dev/null)" local err="$(hwclock "$@" 2>&1 >/dev/null)"
[ -z "${err}" ] && return 0 [ -z "$err" ] && return 0
echo "${err}" >&2 echo "${err}" >&2
return 1 return 1
} }
@@ -68,38 +67,38 @@ start()
local retval=0 errstr="" local retval=0 errstr=""
setupopts setupopts
if [ -z "${utc_cmd}" ]; then if [ -z "$utc_cmd" ]; then
ewarn "Not setting clock for ${utc} system" ewarn "Not setting clock for $utc system"
return 0 return 0
fi fi
ebegin "Setting system clock using the hardware clock [${utc}]" ebegin "Setting system clock using the hardware clock [$utc]"
if [ -e /proc/modules ]; then if [ -e /proc/modules ]; then
local rtc= local rtc=
for rtc in /dev/rtc /dev/rtc[0-9]*; do for rtc in /dev/rtc /dev/rtc[0-9]*; do
[ -e "${rtc}" ] && break [ -e "$rtc" ] && break
done done
if [ ! -e "${rtc}" ]; then if [ ! -e "${rtc}" ]; then
modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc
fi fi
fi fi
if [ -e /etc/adjtime ] && yesno ${clock_adjfile}; then if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
_hwclock --adjust ${utc_cmd} _hwclock --adjust $utc_cmd
retval=$((${retval} + $?)) retval=$(($retval + $?))
fi fi
# If setting UTC, don't bother to run hwclock when first booting # If setting UTC, don't bother to run hwclock when first booting
# as that's the default # as that's the default
if [ "${PREVLEVEL}" != "N" -o \ if [ "$PREVLEVEL" != N -o \
"${utc_cmd}" != "--utc" -o \ "$utc_cmd}" != --utc -o \
-n "${clock_args}" ]; -n "$clock_args" ];
then then
_hwclock --hctosys ${utc_cmd} ${clock_args} _hwclock --hctosys $utc_cmd $clock_args
retval=$((${retval} + $?)) retval=$(($retval + $?))
fi fi
eend ${retval} "Failed to set the system clock" eend $retval "Failed to set the system clock"
return 0 return 0
} }
@@ -107,37 +106,37 @@ start()
stop() stop()
{ {
# Don't tweak the hardware clock on LiveCD halt. # Don't tweak the hardware clock on LiveCD halt.
[ -n "${CDBOOT}" ] && return 0 [ -n "$CDBOOT" ] && return 0
yesno ${clock_systohc} || return 0 yesno $clock_systohc || return 0
local retval=0 errstr="" local retval=0 errstr=""
setupopts setupopts
[ -z "${utc_cmd}" ] && return 0 [ -z "$utc_cmd" ] && return 0
ebegin "Setting hardware clock using the system clock" "[${utc}]" ebegin "Setting hardware clock using the system clock" "[$utc]"
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
_hwclock --systohc ${utc_cmd} ${clock_args} _hwclock --systohc $utc_cmd $clock_args
retval=$? retval=$?
eend ${retval} "Failed to sync clocks" eend $retval "Failed to sync clocks"
} }
save() save()
{ {
clock_systohc="yes" clock_systohc=yes
stop stop
} }
show() show()
{ {
setupopts setupopts
hwclock --show "${utc_cmd}" ${clock_args} hwclock --show "$utc_cmd" $clock_args
} }

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
# This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD # This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD
@@ -13,7 +13,7 @@ opts="panic showstatus"
depend() { depend() {
before net before net
provide firewall provide firewall
keyword nojail keyword -jail
} }
ipfw() { ipfw() {
@@ -95,24 +95,24 @@ start() {
# Add permits for this workstations published services below # Add permits for this workstations published services below
# Only IPs and nets in firewall_allowservices is allowed in. # Only IPs and nets in firewall_allowservices is allowed in.
for i in ${ipfw_ip_in}; do for i in $ipfw_ip_in; do
for p in ${ipfw_ports_in}; do for p in $ipfw_ports_in; do
ipfw add pass tcp from ${i} to me ${p} ipfw add pass tcp from $i to me $p
done done
done done
# Allow all connections from trusted IPs. # Allow all connections from trusted IPs.
# Playing with the content of firewall_trusted could seriously # Playing with the content of firewall_trusted could seriously
# degrade the level of protection provided by the firewall. # degrade the level of protection provided by the firewall.
for i in ${ipfw_ip_trust}; do for i in $ipfw_ip_trust; do
ipfw add pass ip from ${i} to me ipfw add pass ip from $i to me
done done
ipfw add 65000 count ip from any to any ipfw add 65000 count ip from any to any
# Drop packets to ports where we don't want logging # Drop packets to ports where we don't want logging
for p in ${ipfw_ports_nolog}; do for p in $ipfw_ports_nolog; do
ipfw add deny { tcp or udp } from any to any ${p} in ipfw add deny { tcp or udp } from any to any $p in
done done
# Broadcasts and muticasts # Broadcasts and muticasts
@@ -129,10 +129,10 @@ start() {
# Deny and (if wanted) log the rest unconditionally. # Deny and (if wanted) log the rest unconditionally.
if yesno ${ipfw_log_deny:-no}; then if yesno ${ipfw_log_deny:-no}; then
log="log" log=log
sysctl net.inet.ip.fw.verbose=1 >/dev/null sysctl net.inet.ip.fw.verbose=1 >/dev/null
fi fi
ipfw add deny ${log} ip from any to any ipfw add deny $log ip from any to any
eend 0 eend 0
} }

View File

@@ -1,26 +1,27 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Applies a keymap for the consoles." description="Applies a keymap for the consoles."
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
unicode=${unicode:-${UNICODE}}
keymap=${keymap:-${KEYMAP}}
extended_keymaps=${extended_keymaps:-${EXTENDED_KEYMAPS}}
windowkeys=${windowkeys:-${SET_WINDOWSKEYS}}
fix_euro=${fix_euro:-${FIX_EURO}}
dumpkeys_charset=${dumpkeys_charset:-${DUMPKEYS_CHARSET}}
depend() depend()
{ {
need localmount termencoding need localmount termencoding
keyword noopenvz noprefix nouml novserver noxenu after bootmisc
keyword -openvz -prefix -uml -vserver -xenu
} }
start() start()
{ {
if [ -z "${keymap}" ]; then ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
: ${unicode:=$UNICODE}
: =${keymap:=$KEYMAP}
: ${extended_keymaps:=$EXTENDED_KEYMAPS}
: ${windowkeys:=$SET_WINDOWSKEYS}
: ${fix_euro:=$FIX_EURO}
: ${dumpkeys_charset:=${DUMPKEYS_CHARSET}}
if [ -z "$keymap" ]; then
eerror "You need to setup keymap in /etc/conf.d/keymaps first" eerror "You need to setup keymap in /etc/conf.d/keymaps first"
return 1 return 1
fi fi
@@ -33,18 +34,18 @@ 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}]" ebegin "Loading key mappings [$keymap]"
local loadkeys_uni= wkeys= kmode="-a" msg="ASCII" local loadkeys_uni= wkeys= kmode="-a" msg="ASCII"
if yesno ${unicode}; then if yesno $unicode; then
loadkeys_uni="--unicode" 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} loadkeys -q $loadkeys_uni $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
ebegin "Fixing font for euro symbol" ebegin "Fixing font for euro symbol"
# Fix some fonts displaying the Euro, #173528. # Fix some fonts displaying the Euro, #173528.
echo "altgr keycode 18 = U+20AC" | loadkeys -q echo "altgr keycode 18 = U+20AC" | loadkeys -q
@@ -53,15 +54,21 @@ start()
# Set terminal encoding to either ASCII or UNICODE. # Set terminal encoding to either ASCII or UNICODE.
# See utf-8(7) for more information. # See utf-8(7) for more information.
ebegin "Setting keyboard mode [${msg}]" ebegin "Setting keyboard mode [$msg]"
if yesno ${unicode}; then if yesno $unicode; then
dumpkeys ${dumpkeys_charset:+-c} \ dumpkeys ${dumpkeys_charset:+-c} \
${dumpkeys_charset} | loadkeys --unicode $dumpkeys_charset | loadkeys --unicode
fi fi
n=1 n=1
while [ ${n} -le "${ttyn}" ]; do while [ $n -le $ttyn ]; do
kbd_mode "${kmode}" -C "${ttydev}${n}" kbd_mode $kmode -C $ttydev$n
n=$((${n} + 1)) n=$(($n + 1))
done done
eend 0 eend 0
# Save the keymapping for use immediately at boot
if [ -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console
dumpkeys >"$RC_LIBEXECDIR"/console/keymap
fi
} }

View File

@@ -1,12 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Kill all processes so we can unmount disks cleanly." description="Kill all processes so we can unmount disks cleanly."
depend() depend()
{ {
keyword noprefix keyword -prefix
} }
start() start()

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Executes user commands in /etc/conf.d/local" description="Executes user commands in /etc/conf.d/local"
@@ -7,7 +7,7 @@ description="Executes user commands in /etc/conf.d/local"
depend() depend()
{ {
after * after *
keyword notimeout keyword -timeout
} }
start() start()

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Mounts disks and swap according to /etc/fstab." description="Mounts disks and swap according to /etc/fstab."
@@ -8,19 +8,19 @@ depend()
{ {
need fsck need fsck
use lvm modules mtab use lvm modules mtab
keyword nojail noopenvz noprefix novserver keyword -jail -openvz -prefix -vserver
} }
start() start()
{ {
# Mount local filesystems in /etc/fstab. # Mount local filesystems in /etc/fstab.
local types="noproc" x= local types="noproc" x=
for x in ${net_fs_list}; do for x in $net_fs_list; do
types="${types},${x}" types="${types},${x}"
done done
ebegin "Mounting local filesystems" ebegin "Mounting local filesystems"
mount -at "${types}" mount -at "$types"
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
@@ -31,39 +31,33 @@ stop()
{ {
# We never unmount / or /dev or $RC_SVCDIR # We never unmount / or /dev or $RC_SVCDIR
local x= no_umounts_r="/|/dev|/dev/.*|${RC_SVCDIR}" local x= no_umounts_r="/|/dev|/dev/.*|${RC_SVCDIR}"
no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib|/libexec"
# RC_NO_UMOUNTS is an env var that can be set by plugins # RC_NO_UMOUNTS is an env var that can be set by plugins
OIFS=${IFS} SIFS=${IFS-y} OIFS=$IFS SIFS=${IFS-y}
IFS=$IFS: IFS=$IFS:
for x in ${no_umounts} ${RC_NO_UMOUNTS}; do for x in $no_umounts $RC_NO_UMOUNTS; do
no_umounts_r="${no_umounts_r}|${x}" no_umounts_r="$no_umounts_r|$x"
done done
if [ "${SIFS}" = "y" ]; then if [ "$SIFS" = y ]; then
IFS=$OIFS IFS=$OIFS
else else
unset IFS unset IFS
fi fi
if [ "${RC_UNAME}" = "Linux" ]; then if [ "$RC_UNAME" = Linux ]; then
no_umounts_r="${no_umounts_r}|/proc|/proc/.*|/sys|/sys/.*" no_umounts_r="$no_umounts_r|/proc|/proc/.*|/sys|/sys/.*"
fi fi
no_umounts_r="^(${no_umounts_r})$" no_umounts_r="^($no_umounts_r)$"
# Flush all pending disk writes now # Flush all pending disk writes now
sync; sync sync; sync
# Try to unmount all tmpfs filesystems not in use, else a deadlock may . "$RC_LIBEXECDIR"/sh/rc-mount.sh
# occure, bug #13599.
# As $RC_SVCDIR may also be tmpfs we cd to it to lock it
cd "${RC_SVCDIR}"
umount -a -t tmpfs 2>/dev/null
. "${RC_LIBDIR}"/sh/rc-mount.sh
# Umount loopback devices # Umount loopback devices
einfo "Unmounting loopback devices" einfo "Unmounting loopback devices"
eindent eindent
do_unmount "umount -d" --skip-point-regex "${no_umounts_r}" \ do_unmount "umount -d" --skip-point-regex "$no_umounts_r" \
--node-regex "^/dev/loop" --node-regex "^/dev/loop"
eoutdent eoutdent
@@ -72,12 +66,12 @@ stop()
einfo "Unmounting filesystems" einfo "Unmounting filesystems"
eindent eindent
local fs= local fs=
for x in ${net_fs_list}; do for x in $net_fs_list; do
fs="${fs}${fs:+|}${x}" fs="$fs${fs:+|}$x"
done done
[ -n "${fs}" ] && fs="^(${fs})$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount "umount" --skip-point-regex "${no_umounts_r}" \ do_unmount umount --skip-point-regex "$no_umounts_r" \
${fs:+--skip-fstype-regex} ${fs} --nonetdev ${fs:+--skip-fstype-regex} $fs --nonetdev
eoutdent eoutdent
return 0 return 0

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
extra_commands="restore" extra_commands="restore"
@@ -7,7 +7,7 @@ extra_commands="restore"
depend() depend()
{ {
need localmount need localmount
keyword nojail noprefix keyword -jail -prefix
} }
restore() restore()
@@ -17,8 +17,8 @@ restore()
eindent eindent
for mixer in /dev/mixer*; do for mixer in /dev/mixer*; do
if [ -r "/var/db/${mixer#/dev/}-state" ]; then if [ -r "/var/db/${mixer#/dev/}-state" ]; then
vebegin "${mixer}" vebegin "$mixer"
mixer -f "${mixer}" \ mixer -f "$mixer" \
$(cat "/var/db/${mixer#/dev/}-state") >/dev/null $(cat "/var/db/${mixer#/dev/}-state") >/dev/null
veend $? veend $?
: $((retval += $?)) : $((retval += $?))
@@ -37,11 +37,11 @@ stop()
ebegin "Saving mixer settings" ebegin "Saving mixer settings"
eindent eindent
for mixer in /dev/mixer*; do for mixer in /dev/mixer*; do
vebegin "${mixer}" vebegin "$mixer"
mixer -f "${mixer}" -s >/var/db/"${mixer#/dev/}"-state mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state
veend $? veend $?
: $((retval += $?)) : $((retval += $?))
done done
eoutdent eoutdent
eend ${retval} eend $retval
} }

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Loads a user defined list of kernel modules." description="Loads a user defined list of kernel modules."
@@ -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
} }
start() start()
@@ -24,40 +24,40 @@ start()
local KV_MICRO=${x%%-*} local KV_MICRO=${x%%-*}
local list= x= xx= y= args= mpargs= cnt=0 a= local list= x= xx= y= args= mpargs= cnt=0 a=
for x in "${KV}" \ for x in "$KV" \
${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \ $KV_MAJOR.$KV_MINOR.$KV_MICRO \
${KV_MAJOR}.${KV_MINOR} \ $KV_MAJOR.$KV_MINOR \
; do ; do
eval list=\$modules_$(shell_var "${x}") eval list=\$modules_$(shell_var "$x")
[ -n "${list}" ] && break [ -n "$list" ] && break
done done
[ -z "${list}" ] && list=${modules} [ -z "$list" ] && list=$modules
for x in ${list}; do for x in $list; do
a=${x#*:} a=${x#*:}
if [ "${a}" = "${x}" ]; then if [ "$a" = "$x" ]; then
unset mpargs unset mpargs
ebegin "Loading module ${x}" ebegin "Loading module $x"
else else
x=${x%%:*} x=${x%%:*}
mpargs="-o ${a}" mpargs="-o $a"
ebegin "Loading module ${x} as ${a}" ebegin "Loading module $x as $a"
fi fi
aa=$(shell_var "${a}") aa=$(shell_var "$a")
xx=$(shell_var "${x}") xx=$(shell_var "$x")
for y in "${KV}" \ for y in "$KV" \
${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \ $KV_MAJOR.$KV_MINOR.$KV_MICRO \
${KV_MAJOR}.${KV_MINOR} \ $KV_MAJOR.$KV_MINOR \
; do ; do
eval args=\$module_${aa}_args_$(shell_var "${y}") eval args=\$module_${aa}_args_$(shell_var "$y")
[ -n "${args}" ] && break [ -n "${args}" ] && break
eval args=\$module_${xx}_args_$(shell_var "${y}") eval args=\$module_${xx}_args_$(shell_var "$y")
[ -n "${args}" ] && break [ -n "${args}" ] && break
done done
[ -z "${args}" ] && eval args=\$module_${aa}_args [ -z "$args" ] && eval args=\$module_${aa}_args
[ -z "${args}" ] && eval args=\$module_${xx}_args [ -z "$args" ] && eval args=\$module_${xx}_args
eval modprobe -q "${mpargs}" "${x}" "${args}" eval modprobe -q "$mpargs" "$x" "$args"
eend $? "Failed to load ${x}" && cnt=$((${cnt} + 1)) eend $? "Failed to load $x" && cnt=$(($cnt + 1))
done done
einfo "Autoloaded ${cnt} module(s)" einfo "Autoloaded $cnt module(s)"
} }

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Re-mount filesytems read-only for a clean reboot." description="Re-mount filesytems read-only for a clean reboot."
@@ -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
} }
start() start()
@@ -17,29 +17,30 @@ start()
ebegin "Remounting remaining filesystems read-only" ebegin "Remounting remaining filesystems read-only"
# We need the do_unmount function # We need the do_unmount function
. "${RC_LIBDIR}"/sh/rc-mount.sh . "$RC_LIBEXECDIR"/sh/rc-mount.sh
eindent eindent
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs= local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs=
m="$m|/bin|/sbin|/lib|/libexec"
# RC_NO_UMOUNTS is an env var that can be set by plugins # RC_NO_UMOUNTS is an env var that can be set by plugins
local OIFS=$IFS SIFS=${IFS-y} IFS=$IFS local OIFS=$IFS SIFS=${IFS-y} IFS=$IFS
IFS=$IFS: IFS=$IFS:
for x in ${no_umounts} ${RC_NO_UMOUNTS}; do for x in $no_umounts $RC_NO_UMOUNTS; do
m="${m}|${x}" m="$m|$x"
done done
if [ "${SIFS}" = y ]; then if [ "$SIFS" = y ]; then
IFS=$OIFS IFS=$OIFS
else else
unset IFS unset IFS
fi fi
m="^(${m})$" m="^($m)$"
fs= fs=
for x in ${net_fs_list}; do for x in $net_fs_list; do
fs="${fs}${fs:+|}${x}" fs="$fs${fs:+|}$x"
done done
[ -n "${fs}" ] && fs="^(${fs})$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount "umount -r" \ do_unmount "umount -r" \
--skip-point-regex "${m}" \ --skip-point-regex "$m" \
${fs:+--skip-fstype-regex} ${fs} --nonetdev ${fs:+--skip-fstype-regex} $fs --nonetdev
eoutdent eoutdent
eend $? eend $?
} }

View File

@@ -1,62 +1,62 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
mouse=${RC_SVCNAME##*.} mouse=${RC_SVCNAME##*.}
if [ -n "${name}" -a "${mouse}" != "moused" ]; then if [ -n "$mouse" -a "$mouse" != "moused" ]; then
moused_device=/dev/"${mouse}" moused_device=/dev/"$mouse"
pidfile=/var/run/moused-"${mouse}".pid pidfile=/var/run/moused-"$mouse".pid
else else
pidfile=/var/run/moused.pid pidfile=/var/run/moused.pid
fi fi
name="Console Mouse Daemon" name="Console Mouse Daemon"
[ -n "${moused_device}" ] && name="${name} (${moused_device})" [ -n "$moused_device" ] && name="$name ($moused_device)"
depend() depend()
{ {
need localmount need localmount
after bootmisc after bootmisc
keyword nojail noprefix keyword -jail -prefix
} }
start() start()
{ {
ebegin "Starting ${name}" ebegin "Starting $name"
if [ -z "${moused_device}" ]; then if [ -z "$moused_device" ]; then
local dev= local dev=
for dev in /dev/psm[0-9]* /dev/ums[0-9]*; do for dev in /dev/psm[0-9]* /dev/ums[0-9]*; do
[ -c "${dev}" ] || continue [ -c "$dev" ] || continue
[ -e /var/run/moused-"${dev##*/}".pid ] && continue [ -e /var/run/moused-"${dev##*/}".pid ] && continue
moused_device=${dev} moused_device=$dev
eindent eindent
einfo "Using mouse on ${moused_device}" einfo "Using mouse on $moused_device"
eoutdent eoutdent
break break
done done
fi fi
if [ -z "${moused_device}" ]; then if [ -z "$moused_device" ]; then
eend 1 "No mouse device found" eend 1 "No mouse device found"
return 1 return 1
fi fi
local args= local args=
eval args=\$moused_args_${moused_device##*/} eval args=\$moused_args_${moused_device##*/}
[ -z "${args}" ] && args=${moused_args} [ -z "$args" ] && args=$moused_args
start-stop-daemon --start --exec /usr/sbin/moused \ start-stop-daemon --start --exec /usr/sbin/moused \
--pidfile "${pidfile}" \ --pidfile "$pidfile" \
-- ${args} -p "${moused_device}" -I "${pidfile}" -- $args -p "$moused_device" -I "$pidfile"
local retval=$? local retval=$?
if [ ${retval} = 0 ]; then if [ $retval = 0 ]; then
local ttyv= local ttyv=
for ttyv in /dev/ttyv*; do for ttyv in /dev/ttyv*; do
vidcontrol < "${ttyv}" -m on vidcontrol < "$ttyv" -m on
: $((retval+= $?)) : $((retval+= $?))
done done
fi fi
eend ${retval} "Failed to start moused" eend $retval "Failed to start moused"
} }

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Update /etc/mtab to match what the kernel knows about" description="Update /etc/mtab to match what the kernel knows about"
@@ -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"

View File

@@ -1,8 +1,8 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
MODULESDIR="${RC_LIBDIR}/net" MODULESDIR="${RC_LIBEXECDIR}/net"
MODULESLIST="${RC_SVCDIR}/nettree" MODULESLIST="${RC_SVCDIR}/nettree"
_config_vars="config routes" _config_vars="config routes"
@@ -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);;
@@ -682,8 +682,8 @@ stop()
fi fi
done done
# Only delete addresses for non PPP interfaces # Only delete addresses for interfaces that exist
if ! [ "$(command -v is_ppp)" = "is_ppp" ] || ! is_ppp; then if _exists; then
_delete_addresses "${IFACE}" _delete_addresses "${IFACE}"
fi fi

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Mounts network shares according to /etc/fstab." description="Mounts network shares according to /etc/fstab."
@@ -11,7 +11,7 @@ need_portmap()
" "
set -- $(fstabinfo --options --fstype nfs,nfs4) set -- $(fstabinfo --options --fstype nfs,nfs4)
for opts; do for opts; do
case ,${opts}, in case ,$opts, in
*,noauto,*|*,nolock,*);; *,noauto,*|*,nolock,*);;
*) return 0;; *) return 0;;
esac esac
@@ -27,15 +27,15 @@ depend()
if need_portmap; then if need_portmap; then
pmap="rpc.statd" pmap="rpc.statd"
[ -x @SYSCONFDIR@/init.d/rpcbind ] \ [ -x @SYSCONFDIR@/init.d/rpcbind ] \
&& pmap="${pmap} rpcbind" \ && pmap="$pmap rpcbind" \
|| pmap="${pmap} portmap" || pmap="$pmap portmap"
fi fi
config /etc/fstab config /etc/fstab
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()
@@ -44,8 +44,8 @@ start()
[ -x @SYSCONFDIR@/init.d/rpcbind ] && pmap="rpcbind" [ -x @SYSCONFDIR@/init.d/rpcbind ] && pmap="rpcbind"
local x= fs= local x= fs=
for x in ${net_fs_list}; do for x in $net_fs_list; do
case "${x}" in case "$x" in
nfs|nfs4) nfs|nfs4)
# If the nfsmount script took care of the nfs # If the nfsmount script took care of the nfs
# filesystems, then there's no point in trying # filesystems, then there's no point in trying
@@ -55,16 +55,16 @@ start()
# Only try to mount NFS filesystems if portmap was # Only try to mount NFS filesystems if portmap was
# started. This is to fix "hang" problems for new # started. This is to fix "hang" problems for new
# users who do not add portmap to the default runlevel. # users who do not add portmap to the default runlevel.
if need_portmap && ! service_started "${pmap}"; then if need_portmap && ! service_started "$pmap"; then
continue continue
fi fi
;; ;;
esac esac
fs="${fs}${fs:+,}${x}" fs="$fs${fs:+,}$x"
done done
ebegin "Mounting network filesystems" ebegin "Mounting network filesystems"
mount -at ${fs} mount -at $fs
ewend $? "Could not mount all network filesystems" ewend $? "Could not mount all network filesystems"
return 0 return 0
} }
@@ -74,24 +74,24 @@ stop()
local x= fs= local x= fs=
ebegin "Unmounting network filesystems" ebegin "Unmounting network filesystems"
. "${RC_LIBDIR}/sh/rc-mount.sh" . "$RC_LIBEXECDIR"/sh/rc-mount.sh
for x in ${net_fs_list}; do for x in $net_fs_list; do
fs="${fs}${fs:+,}${x}" fs="$fs${fs:+,}$x"
done done
if [ -n "${fs}" ]; then if [ -n "$fs" ]; then
umount -at ${fs} || eerror "Failed to simply unmount filesystems" umount -at $fs || eerror "Failed to simply unmount filesystems"
fi fi
eindent eindent
fs= fs=
for x in ${net_fs_list}; do for x in $net_fs_list; do
fs="${fs}${fs:+|}${x}" fs="$fs${fs:+|}$x"
done done
[ -n "${fs}" ] && fs="^(${fs})$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount "umount" ${fs:+--fstype-regex} ${fs} --netdev do_unmount umount ${fs:+--fstype-regex} $fs --netdev
retval=$? retval=$?
eoutdent eoutdent
eend ${retval} "Failed to unmount network filesystems" eend $retval "Failed to unmount network filesystems"
} }

267
init.d/network.in Normal file
View File

@@ -0,0 +1,267 @@
#!@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 network from NetBSD.
description="Configures network interfaces."
__nl="
"
depend()
{
need localmount
after bootmisc
provide net
keyword -jail -prefix -vserver
}
uniqify()
{
local result= i=
for i; do
case " $result " in
*" $i "*);;
*) result="$result $i";;
esac
done
echo "${result# *}"
}
reverse()
{
local result= i=
for i; do
result="$i $result"
done
echo "${result# *}"
}
sys_interfaces()
{
case "$RC_UNAME" in
Linux)
local w= rest= i= cmd=$1
while read w rest; do
i=${w%%:*}
[ "$i" != "$w" ] || continue
if [ "$cmd" = u ]; then
ifconfig "$i" | grep -q "[ ]*UP" || continue
fi
printf "%s " "$i"
done </proc/net/dev
;;
*)
ifconfig -l$1
;;
esac
}
auto_interfaces()
{
local ifs= c= f=
case "$RC_UNAME" in
NetBSD)
for c in $(ifconfig -C 2>/dev/null); do
for f in /etc/ifconfig.${c}[0-9]*; do
[ -f "$f" ] && printf "%s" "$f{##*.} "
done
done
;;
*)
for f in /etc/ifconfig.*; do
[ -f "$f" ] && printf "%s" "${f##*.} "
done
for f in /etc/ip.*; do
[ -f "$f" ] && printf "%s" "${f##*.} "
done
;;
esac
echo
}
interfaces()
{
uniqify $(sys_interfaces "$@") $interfaces $(auto_interfaces)
}
dumpargs()
{
local f="$1"
shift
case "$@" in
'') [ -f "$f" ] && cat "$f";;
*"$__nl"*) echo "$@";;
*)
(
set -o noglob
IFS=';'; set -- $@
IFS="$__nl"; echo "$*"
);;
esac
}
runip()
{
local int="$1" err=
shift
err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
[ -z "$err" ] && return 0
if [ "$err" = "RTNETLINK answers: File exists" ]; then
ip address del "$@" dev "$int" 2>/dev/null
fi
# Localise the error
ip address add "$@" dev "$int"
}
routeflush()
{
if [ "$RC_UNAME" = Linux ]; then
if [ -x /sbin/ip ]; then
ip route flush scope global
else
# Sadly we also delete some link routes, but
# this cannot be helped
local dest= gate= net= flags= rest=
route -n | while read dest gate net flags rest; do
[ -z "$net" ] && continue
case "$dest" in
[0-9]*) ;;
*) continue;;
esac
local xtra= netmask="netmask $net"
case "$flags" in
U) continue;;
*H*) flags=-host; netmask=;;
*!*) flags=-net; xtra=reject;;
*) flags=-net;;
esac
route del $flags $dest $netmask $xtra
done
fi
else
route -qn flush
fi
}
runargs()
{
dumpargs "$@" | while read -r args; do
case "$args" in
''|"#"*) ;;
*)
(
eval vebegin "${args#*!}"
eval "${args#*!}"
veend $?
);;
esac
done
}
start()
{
local cr=0 r= int= intv= cmd= args= upcmd=
einfo "Starting network"
routeflush
if [ "$RC_UNAME" = "Linux" ]; then
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 \
gw 127.0.0.1 reject 2>/dev/null
else
ifconfig lo0 127.0.0.1 netmask 255.0.0.0 || cr=1
route -q add -inet 127.0.0.0 -netmask 255.0.0.0 \
127.0.0.1 -reject || cr=1
fi
eindent
for int in $(interfaces); do
local func= cf=
intv=$(shell_var "$int")
eval upcmd=\$ifup_$intv
for func in ip ifconfig; do
eval cmd=\$${func}_$intv
if [ -n "$cmd" -o -f /etc/"$func.$int" ]; then
cf=/etc/"$func.$int"
break
fi
done
[ -n "$cf" -o -n "$upcmd" -o \
-f /etc/ifup."$int" -o -f "$cf" ] || continue
veinfo "$int"
case "$func" in
ip) func=runip;;
esac
eindent
runargs /etc/ifup."$int" "$upcmd"
r=0
dumpargs "$cf" "$cmd" | while read -r args; do
case "$args" in
''|"#"*) ;;
"!"*)
(
eval vebegin "${args#*!}"
eval "${args#*!}"
veend $?
);;
*)
(
set -o noglob
eval set -- "$args"
vebegin "$@"
$func "$int" "$@"
veend $?
);;
esac
done
eoutdent
done
eoutdent
eend $cr
if [ -n "$defaultroute" ]; then
ebegin "Setting default route $defaultroute"
if [ "$RC_UNAME" = Linux ]; then
route add default gw $defaultroute
else
route add default $defaultroute
fi
eend $?
fi
return 0
}
stop()
{
# Don't stop the network at shutdown.
# We don't use the noshutdown keyword so that we are started again
# correctly if we go back to multiuser.
yesno ${shutdown_network:-YES} && yesno $RC_GOINGDOWN && return 0
local int= intv= cmd= downcmd= r=
einfo "Stopping network"
routeflush
eindent
for int in $(reverse $(interfaces u)); do
intv=$(shell_var "$int")
eval downcmd=\$ifdown_$intv
eval cmd=\$ip_$intv
[ -z "$cmd" ] && eval cmd=\$ifconfig_$intv
if [ -n "$cmd" -o -f /etc/ip."$int" -o \
-f /etc/ifconfig."$int" -o \
-n "$downcmd" -o -f /etc/ifdown."$int" ];
then
veinfo "$int"
runargs /etc/ifdown."$int" "$downcmd"
ifconfig "$int" down 2>/dev/null
ifconfig "$int" destroy 2>/dev/null
fi
done
eoutdent
eend 0
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
required_files="/etc/newsyslog.conf" required_files="/etc/newsyslog.conf"
@@ -7,12 +7,12 @@ required_files="/etc/newsyslog.conf"
depend() depend()
{ {
need localmount need localmount
keyword noprefix keyword -prefix
} }
start() start()
{ {
ebegin "Creating and/or trimming log files" ebegin "Creating and/or trimming log files"
newsyslog -s ${newsyslog_args} newsyslog -s $newsyslog_args
eend $? eend $?
} }

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=/usr/sbin/nscd command=/usr/sbin/nscd
command_args="${nscd_args}" command_args=$nscd_args
pidfile=/var/run/nscd.pid pidfile=/var/run/nscd.pid
name="Name Service Cache Daemon" name="Name Service Cache Daemon"
@@ -16,7 +16,7 @@ depend() {
} }
flush() { flush() {
ebegin "Flushing ${name}" ebegin "Flushing $name"
nscd -I all >/dev/null nscd -I all >/dev/null
eend $? eend $?
} }

View File

@@ -1,15 +1,15 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Turns numlock on for the consoles." description="Turns numlock on for the consoles."
ttyn=${rc_tty_number:-${RC_TTY_NUMBER}:-12} ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend() depend()
{ {
need localmount need localmount
keyword noopenvz noprefix novserver keyword -openvz -prefix -vserver
} }
_setleds() _setleds()
@@ -19,12 +19,12 @@ _setleds()
local dev=/dev/tty t= i=1 retval=0 local dev=/dev/tty t= i=1 retval=0
[ -d /dev/vc ] && dev=/dev/vc/ [ -d /dev/vc ] && dev=/dev/vc/
while [ ${i} -le ${ttyn} ]; do while [ $i -le $ttyn ]; do
setleds -D "$1"num < ${dev}${i} || retval=1 setleds -D "$1"num < $dev$i || retval=1
i=$((${i} + 1)) i=$(($i + 1))
done done
return ${retval} return $retval
} }
start() start()

View File

@@ -1,54 +1,54 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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="Packet Filter" name="Packet Filter"
pf_conf=${pf_conf:-${pf_rules:-/etc/pf.conf}} : ${pf_conf:=${pf_rules:-/etc/pf.conf}}
required_files=${pf_conf} required_files=$pf_conf
extra_commands="checkconfig showstatus" extra_commands="checkconfig showstatus"
extra_started_commands="reload" extra_started_commands="reload"
depend() { depend() {
need localmount need localmount
keyword nojail noprefix keyword -jail -prefix
} }
start() start()
{ {
ebegin "Starting ${name}" ebegin "Starting $name"
if type kldload >/dev/null 2>&1; then if type kldload >/dev/null 2>&1; then
kldload pf 2>/dev/null kldload pf 2>/dev/null
fi fi
pfctl -q -F all pfctl -q -F all
pfctl -q -f "${pf_conf}" ${pf_args} pfctl -q -f "$pf_conf" $pf_args
pfctl -q -e pfctl -q -e
eend $? eend $?
} }
stop() stop()
{ {
ebegin "Stopping ${name}" ebegin "Stopping $name"
pfctl -q -d pfctl -q -d
eend $? eend $?
} }
checkconfig() checkconfig()
{ {
ebegin "Checking ${name} configuration" ebegin "Checking $name configuration"
pfctl -n -f "${pf_conf}" pfctl -n -f "$pf_conf"
eend $? eend $?
} }
reload() reload()
{ {
ebegin "Reloading ${name} rules." ebegin "Reloading $name rules."
pfctl -q -n -f "${pf_conf}" && \ pfctl -q -n -f "$pf_conf" && \
{ {
# Flush everything but existing state entries that way when # Flush everything but existing state entries that way when
# rules are read in, it doesn't break established connections. # rules are read in, it doesn't break established connections.
pfctl -q -Fnat -Fqueue -Frules -FSources -Finfo -FTables -Fosfp pfctl -q -Fnat -Fqueue -Frules -FSources -Finfo -FTables -Fosfp
pfctl -q -f "${pf_conf}" ${pf_args} pfctl -q -f "$pf_conf" $pf_args
} }
eend $? eend $?
} }

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
command=/usr/sbin/powerd command=/usr/sbin/powerd
command_args=${powerd_args} command_args=$powerd_args
pidfile=/var/run/powerd.pid pidfile=/var/run/powerd.pid
name="Power Control Daemon" name="Power Control Daemon"
@@ -12,16 +12,16 @@ depend()
need localmount need localmount
use logger use logger
after bootmisc after bootmisc
keyword nojail noprefix keyword -jail -prefix
} }
start_pre() start_pre()
{ {
if [ -n "${powerd_battery_mode}" ]; then if [ -n "$powerd_battery_mode" ]; then
command_args="${command_args} -b ${powerd_battery_mode}" command_args="$command_args -b $powerd_battery_mode"
fi fi
if [ -n "${powerd_ac_mode}" ]; then if [ -n "${powerd_ac_mode}" ]; then
command_args="${command_args} -a ${powerd_ac_mode}" command_args="$command_args -a $powerd_ac_mode"
fi fi
} }
@@ -29,7 +29,7 @@ stop_post()
{ {
local level=$(sysctl -n dev.cpu.0.freq_levels | local level=$(sysctl -n dev.cpu.0.freq_levels |
sed -e 's:/.*::') sed -e 's:/.*::')
if [ -n "${level}" ]; then if [ -n "$level" ]; then
sysctl dev.cpu.0.freq="${level}" >/dev/null sysctl dev.cpu.0.freq="$level" >/dev/null
fi fi
} }

View File

@@ -1,14 +1,14 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Mounts misc filesystems in /proc." description="Mounts misc filesystems in /proc."
depend() depend()
{ {
use devfs use modules devfs
need localmount need localmount
keyword noopenvz noprefix novserver keyword -openvz -prefix -vserver
} }
start() start()
@@ -25,13 +25,13 @@ start()
# while older kernels have 'usbdevfs'. # while older kernels have 'usbdevfs'.
if [ -d /proc/bus/usb -a ! -e /proc/bus/usb/devices ]; then if [ -d /proc/bus/usb -a ! -e /proc/bus/usb/devices ]; then
local usbfs=$(grep -Fow usbfs /proc/filesystems || local usbfs=$(grep -Fow usbfs /proc/filesystems ||
grep -Fow usbdevfs /proc/filesystems) grep -Fow usbdevfs /proc/filesystems)
if [ -n "${usbfs}" ]; then if [ -n "$usbfs" ]; then
ebegin "Mounting USB device filesystem [${usbfs}]" ebegin "Mounting USB device filesystem [$usbfs]"
local usbgid="$(getent group usb | \ local usbgid="$(getent group usb | \
sed -e 's/.*:.*:\(.*\):.*/\1/')" sed -e 's/.*:.*:\(.*\):.*/\1/')"
mount -t ${usbfs} \ mount -t $usbfs \
-o ${usbgid:+devmode=0664,devgid=${usbgid},}noexec,nosuid \ -o ${usbgid:+devmode=0664,devgid=$usbgid,}noexec,nosuid \
usbfs /proc/bus/usb usbfs /proc/bus/usb
eend $? eend $?
fi fi
@@ -48,7 +48,8 @@ start()
fi fi
# Setup Kernel Support for miscellaneous Binary Formats # Setup Kernel Support for miscellaneous Binary Formats
if [ -d /proc/sys/fs/binfmt_misc ] && ! mountinfo -q /proc/sys/fs/binfmt_misc; then if [ -d /proc/sys/fs/binfmt_misc ] \
&& ! mountinfo -q /proc/sys/fs/binfmt_misc; then
if grep -qs binfmt_misc /proc/filesystems; then if grep -qs binfmt_misc /proc/filesystems; then
ebegin "Mounting misc binary format filesystem" ebegin "Mounting misc binary format filesystem"
mount -t binfmt_misc -o nodev,noexec,nosuid \ mount -t binfmt_misc -o nodev,noexec,nosuid \

View File

@@ -1,28 +1,23 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
command=/usr/sbin/rarpd command=/usr/sbin/rarpd
command_args="-f ${rarpd_args}" command_args="-f $rarpd_args"
pidfile=/var/run/rarpd.pid pidfile=/var/run/rarpd.pid
name="Reverse ARP Daemon" name="Reverse ARP Daemon"
required_files="/etc/ethers" required_files=/etc/ethers
if [ -z "${rarpd_interface}" ]; then if [ -z "$rarpd_interface" ]; then
command_args="${command_args} -a" command_args="$command_args -a"
else else
command_args="${command_args} ${rarpd_interface}" command_args="$command_args $rarpd_interface"
fi fi
command_background="YES" command_background=YES
depend() depend()
{ {
need localmount need localmount
after bootmisc after bootmisc
need net
if [ -z "${rarpd_interface}" ]; then
need net
else
net net."${rarpd_interface}"
fi
} }

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
depend() depend()
@@ -7,34 +7,35 @@ depend()
need localmount net need localmount net
after * after *
before local before local
keyword noprefix keyword -prefix
} }
start() start()
{ {
ebegin "Starting local rc services" ebegin "Starting local rc services"
local svc= enabled= retval=0 service= local svc= enabled= retval=0 service= pkgdir=
for svc in $(rcorder /etc/rc.d/* @PKG_PREFIX@/etc/rc.d/* 2>/dev/null); do [ -n "@PKG_PREFIX@" ] && pkgdir="@PKG_PREFIX@/etc/rc.d/*"
for svc in $(rcorder /etc/rc.d/* $pkgdir 2>/dev/null); do
[ -x "$svc" ] || continue [ -x "$svc" ] || continue
service=${svc##*/} service=${svc##*/}
# Skip these services # Skip these services
for s in cleartmp moused; do for s in cleartmp moused; do
[ "${s}" = "${service}" ] && continue 2 [ "$s" = "$service" ] && continue 2
done done
# If we have an init script for this service, continue # If we have an init script for this service, continue
rc-service --exists "${service}" && continue rc-service --exists "$service" && continue
# Ensure that the users rc.conf will start us - ignore the defaults # Ensure that the users rc.conf will start us
eval enabled=\$${svc##*/}_enable eval enabled=\$${svc##*/}_enable
yesno ${enabled} || yesno ${svc##*/} || continue yesno $enabled || yesno ${svc##*/} || continue
# Good to go! # Good to go!
"$svc" start && started="${started} ${svc}" "$svc" start && started="$started $svc"
: $((retval += $?)) : $((retval += $?))
done done
service_set_value started "${started}" service_set_value started "$started"
eend $retval "Some local rc services failed to start" eend $retval "Some local rc services failed to start"
return 0 return 0
} }
@@ -44,7 +45,7 @@ stop()
ebegin "Stopping local rc services" ebegin "Stopping local rc services"
local svc= retval=0 local svc= retval=0
for svc in $(rcorder $(service_get_value started) 2>/dev/null | sort -r); do for svc in $(rcorder $(service_get_value started) 2>/dev/null | sort -r); do
"${svc}" stop "$svc" stop
: $((retval += $?)) : $((retval += $?))
done done
eend $retval "Some local rc services failed to stop" eend $retval "Some local rc services failed to stop"

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Mount the root fs read/write" description="Mount the root fs read/write"
@@ -7,18 +7,22 @@ description="Mount the root fs read/write"
depend() depend()
{ {
need fsck need fsck
keyword nojail noopenvz noprefix novserver keyword -jail -openvz -prefix -vserver
} }
start() start()
{ {
case ",$(fstabinfo -o /)," in
*,ro,*) return 0;;
esac
if echo 2>/dev/null >/.test.$$; then if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$ /fastboot /forcefsck rm -f /.test.$$ /fastboot /forcefsck
return 0 return 0
fi fi
ebegin "Remounting root filesystem read/write" ebegin "Remounting root filesystem read/write"
case "${RC_UNAME}" in case "$RC_UNAME" in
Linux) mount -n -o remount,rw /;; Linux) mount -n -o remount,rw /;;
*) mount -u -o rw /;; *) mount -u -o rw /;;
esac esac

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
command=/usr/sbin/rpcbind command=/usr/sbin/rpcbind
command_args=${rpcbind_args} command_args=$rpcbind_args
name="RPC program number mapper" name="RPC program number mapper"
depend() depend()

View File

@@ -1,12 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
description="Saves the caches OpenRC uses to non volatile storage" description="Saves the caches OpenRC uses to non volatile storage"
start() start()
{ {
if [ -e "${RC_SVCDIR}"/clock-skewed ]; then if [ -e "$RC_SVCDIR"/clock-skewed ]; then
ewarn "WARNING: clock skew detected!" ewarn "WARNING: clock skew detected!"
if ! yesno "savecache_skewed"; then if ! yesno "savecache_skewed"; then
eerror "Not saving deptree cache" eerror "Not saving deptree cache"
@@ -14,19 +14,19 @@ start()
fi fi
fi fi
ebegin "Saving dependency cache" ebegin "Saving dependency cache"
if [ ! -d "${RC_LIBDIR}"/cache ]; then if [ ! -d "$RC_LIBEXECDIR"/cache ]; then
rm -rf "${RC_LIBDIR}"/cache rm -rf "$RC_LIBEXECDIR"/cache
if ! mkdir "${RC_LIBDIR}"/cache; then if ! mkdir "$RC_LIBEXECDIR"/cache; then
eend $? eend $?
return $? return $?
fi fi
fi fi
local save= local save=
for x in deptree depconfig softlevel nettree rc.log; do for x in deptree depconfig 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
cp -p ${save} "${RC_LIBDIR}"/cache 2>/dev/null cp -p $save "$RC_LIBEXECDIR"/cache 2>/dev/null
fi fi
eend $? eend $?
} }

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Saves a kernel dump." description="Saves a kernel dump."
@@ -7,30 +7,30 @@ description="Saves a kernel dump."
depend() depend()
{ {
need localmount need localmount
keyword nojail noprefix keyword -jail -prefix
} }
start() start()
{ {
local dump_dir=${dump_dir:-/var/crash} : ${dump_dir:=/var/crash}
if ! [ -d "${dump_dir}" ]; then if ! [ -d "$dump_dir" ]; then
mkdir -p "${dump_dir}" mkdir -p "$dump_dir"
chmod 700 "${dump_dir}" chmod 700 "$dump_dir"
fi fi
if [ "${RC_UNAME}" = "FreeBSD" ]; then if [ "$RC_UNAME" = FreeBSD ]; then
# Don't quote ${dump_device}, so that if it's unset, # Don't quote ${dump_device}, so that if it's unset,
# savecore will check on the partitions listed in fstab # savecore will check on the partitions listed in fstab
# without errors in the output # without errors in the output
savecore -C "${dump_dir}" ${dump_device} >/dev/null savecore -C "$dump_dir" $dump_device >/dev/null
else else
ls "${dump_dir}"/bsd* > /dev/null 2>&1 ls "$dump_dir"/bsd* > /dev/null 2>&1
fi fi
[ $? = 0 ] || return 0 [ $? = 0 ] || return 0
local sopts="${dump_dir} ${dump_device}" local sopts="$dump_dir $dump_device"
yesno ${dump_compress} && sopts="-z ${sopts}" yesno $dump_compress && sopts="-z $sopts"
ebegin "Saving kernel core dump in ${dump_dir}" ebegin "Saving kernel core dump in $dump_dir"
savecore ${sopts} >/dev/null savecore $sopts >/dev/null
eend $? eend $?
} }

View File

@@ -1,11 +1,11 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
depend() depend()
{ {
before fsck before fsck
keyword nojail noprefix keyword -jail -prefix
} }
start() start()

View File

@@ -1,17 +1,17 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
depend() depend()
{ {
need localmount need localmount
keyword nojail noopenvz noprefix novserver keyword -jail -openvz -prefix -vserver
} }
start() start()
{ {
ebegin "Activating swap devices" ebegin "Activating swap devices"
case "${RC_UNAME}" in case "$RC_UNAME" in
NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;; NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;;
*) swapon -a >/dev/null;; *) swapon -a >/dev/null;;
esac esac
@@ -21,7 +21,13 @@ start()
stop() stop()
{ {
ebegin "Deactivating swap devices" ebegin "Deactivating swap devices"
case "${RC_UNAME}" in
# Try to unmount all tmpfs filesystems not in use, else a deadlock may
# occure. As $RC_SVCDIR may also be tmpfs we cd to it to lock it
cd "$RC_SVCDIR"
umount -a -t tmpfs 2>/dev/null
case "$RC_UNAME" in
NetBSD|OpenBSD) swapctl -U -t noblk >/dev/null;; NetBSD|OpenBSD) swapctl -U -t noblk >/dev/null;;
*) swapoff -a >/dev/null;; *) swapoff -a >/dev/null;;
esac esac

View File

@@ -1,36 +1,36 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
depend() { depend() {
need localmount need localmount
keyword nojail noprefix keyword -jail -prefix
} }
start() { start() {
if [ -n "${allscreen_flags}" ]; then if [ -n "$allscreen_flags" ]; then
ebegin "Setting mode to ${allscreen_flags} for all screens" ebegin "Setting mode to $allscreen_flags for all screens"
for v in /dev/ttyv*; do for v in /dev/ttyv*; do
vidcontrol ${allscreen_flags} <"${v}" vidcontrol $allscreen_flags <$v
done done
eend $? eend $?
fi fi
if [ -n "${keymap}" ]; then if [ -n "$keymap" ]; then
ebegin "Setting keymap to ${keymap}" ebegin "Setting keymap to $keymap"
kbdcontrol -l ${keymap} </dev/console kbdcontrol -l $keymap </dev/console
eend $? eend $?
fi fi
if [ -n "${keyrate}" ]; then if [ -n "$keyrate" ]; then
ebegin "Setting keyrate to ${keyrate}" ebegin "Setting keyrate to $keyrate"
kbdcontrol -r ${keyrate} </dev/console kbdcontrol -r $keyrate </dev/console
eend $? eend $?
fi fi
if [ -n "${keychange}" ]; then if [ -n "$keychange" ]; then
ebegin "Changing function keys" ebegin "Changing function keys"
eval set -- "${keychange}" eval set -- "$keychange"
eindent eindent
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
veinfo "F$1 -> \`$2'" veinfo "F$1 -> \`$2'"
@@ -41,40 +41,40 @@ start() {
eoutdent eoutdent
fi fi
if [ -n "${cursor}" ]; then if [ -n "$cursor" ]; then
ebegin "Setting cursor" ebegin "Setting cursor"
vidcontrol -c ${cursor} vidcontrol -c $cursor
eend $? eend $?
fi fi
local v= f= local v= f=
for v in font8x16 font8x14 font8x8; do for v in font8x16 font8x14 font8x8; do
eval f=\$${v} eval f=\$$v
if [ -n "${f}" ]; then if [ -n "$f" ]; then
ebegin "Setting font ${f}" ebegin "Setting font $f"
vidcontrol -f ${v##font} ${f} vidcontrol -f ${v##font} $f
eend $? eend $?
fi fi
done done
if [ -n "${blanktime}" ]; then if [ -n "$blanktime" ]; then
ebegin "Setting blanktime" ebegin "Setting blanktime"
vidcontrol -t ${blanktime} vidcontrol -t $blanktime
eend $? eend $?
fi fi
if [ -n "${saver}" ]; then if [ -n "$saver" ]; then
local i= local i=
for i in $(kldstat | sed -n -e 's/.* \(splash_.*\)/\1/p'); do for i in $(kldstat | sed -n -e 's/.* \(splash_.*\)/\1/p'); do
kldunload "${i}" kldunload "$i"
done done
kldstat -v | grep -q _saver || kldload ${saver}_saver kldstat -v | grep -q _saver || kldload ${saver}_saver
fi fi
if [ -n "${kbdflags}" ]; then if [ -n "$kbdflags" ]; then
ebegin "Setting keyboard flags for all screens" ebegin "Setting keyboard flags for all screens"
for v in /dev/ttyv*; do for v in /dev/ttyv*; do
kbdcontrol ${kbdflags} <${v} kbdcontrol $kbdflags <$v
done done
eend $? eend $?
fi fi

View File

@@ -1,12 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
depend() depend()
{ {
use hostname use hostname
before bootmisc logger before bootmisc logger
keyword noprefix keyword -prefix
} }
start() start()
@@ -15,10 +15,10 @@ start()
local retval=0 var= comments= local retval=0 var= comments=
ebegin "Configuring kernel parameters" ebegin "Configuring kernel parameters"
while read var comments; do while read var comments; do
case "${var}" in case "$var" in
""|"#"*) continue;; ""|"#"*) continue;;
esac esac
sysctl -w "${var}" >/dev/null || retval=1 sysctl -w "$var" >/dev/null || retval=1
done < /etc/sysctl.conf done < /etc/sysctl.conf
eend ${retval} "Some errors were encountered" eend $retval "Some errors were encountered"
} }

View File

@@ -1,12 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 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.
depend() depend()
{ {
use hostname use hostname
before bootmisc logger before bootmisc logger
keyword noopenvz noprefix novserver keyword -openvz -prefix -vserver
} }
start() start()

View File

@@ -1,12 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
description="Mount the sys filesystem." description="Mount the sys filesystem."
depend() depend()
{ {
keyword noprefix novserver keyword -prefix -vserver
} }
mount_sys() mount_sys()
@@ -31,7 +31,8 @@ mount_sys()
mount_misc() mount_misc()
{ {
# Setup Kernel Support for securityfs # Setup Kernel Support for securityfs
if [ -d /sys/kernel/security ] && ! mountinfo -q /sys/kernel/security; then if [ -d /sys/kernel/security ] && \
! mountinfo -q /sys/kernel/security; then
if grep -qs securityfs /proc/filesystems; then if grep -qs securityfs /proc/filesystems; then
ebegin "Mounting security filesystem" ebegin "Mounting security filesystem"
mount -n -t securityfs -o nodev,noexec,nosuid \ mount -n -t securityfs -o nodev,noexec,nosuid \
@@ -56,8 +57,8 @@ start()
local retval local retval
mount_sys mount_sys
retval=$? retval=$?
if [ ${retval} -eq 0 ]; then if [ $retval -eq 0 ]; then
mount_misc mount_misc
fi fi
return ${retval} return $retval
} }

View File

@@ -1,10 +1,10 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
command=/usr/sbin/syslogd command=/usr/sbin/syslogd
command_args=${syslogd_args} command_args=$syslogd_args
case "${RC_UNAME}" in case "$RC_UNAME" in
FreeBSD|DragonFly) pidfile=/var/run/syslog.pid;; FreeBSD|DragonFly) pidfile=/var/run/syslog.pid;;
*) pidfile=/var/run/syslogd.pid;; *) pidfile=/var/run/syslogd.pid;;
esac esac
@@ -16,5 +16,5 @@ depend()
use net newsyslog use net newsyslog
need localmount need localmount
after bootmisc after bootmisc
keyword noprefix keyword -prefix
} }

View File

@@ -1,15 +1,15 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2008 Roy Marples <roy@marples.name> # Copyright (c) 2008-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.
description="Configures terminal encoding." description="Configures terminal encoding."
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
unicode=${unicode:-${UNICODE}} : ${unicode:=${UNICODE}}
depend() depend()
{ {
keyword noopenvz noprefix nouml novserver noxenu keyword -openvz -prefix -uml -vserver -xenu
} }
start() start()
@@ -25,11 +25,11 @@ start()
termmsg="UTF-8" termmsg="UTF-8"
fi fi
ebegin "Setting terminal encoding [${termmsg}]" ebegin "Setting terminal encoding [$termmsg]"
n=1 n=1
while [ ${n} -le "${ttyn}" ]; do while [ ${n} -le "$ttyn" ]; do
printf "\033%s" "${termencoding}" >"${ttydev}${n}" printf "\033%s" "$termencoding" >$ttydev$n
n=$((${n} + 1)) n=$(($n + 1))
done done
eend 0 eend 0
} }

View File

@@ -1,11 +1,11 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2008 Roy Marples <roy@marples.name> # Copyright (c) 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.
depend() depend()
{ {
after fsck after fsck
keyword noprefix keyword -prefix
} }
start() start()

View File

@@ -1,15 +1,14 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2007-2008 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.
urandom_seed=${urandom_seed:-${URANDOM_SEED:-/var/run/random-seed}} : ${urandom_seed:=${URANDOM_SEED:-/var/run/random-seed}}
description="Initializes the random number generator." description="Initializes the random number generator."
depend() depend()
{ {
need localmount need localmount
keyword nojail noprefix keyword -jail -openvz -prefix
} }
save_seed() save_seed()
@@ -22,19 +21,19 @@ save_seed()
( # sub shell to prevent umask pollution ( # sub shell to prevent umask pollution
umask 077 umask 077
dd if=/dev/urandom of="${urandom_seed}" count=${psz} 2>/dev/null dd if=/dev/urandom of="$urandom_seed" count=${psz} 2>/dev/null
) )
} }
start() start()
{ {
[ -c /dev/urandom ] || return [ -c /dev/urandom ] || return
if [ -f "${urandom_seed}" ]; then if [ -f "$urandom_seed" ]; then
ebegin "Initializing random number generator" ebegin "Initializing random number generator"
cat "${urandom_seed}" > /dev/urandom cat "$urandom_seed" > /dev/urandom
eend $? "Error initializing random number generator" eend $? "Error initializing random number generator"
fi fi
rm -f "${urandom_seed}" && save_seed rm -f "$urandom_seed" && save_seed
return 0 return 0
} }

View File

@@ -1,11 +1,11 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright 2008 Roy Marples <roy@marples.name> # Copyright (c) 2008-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.
depend() depend()
{ {
need localmount need localmount
keyword noprefix keyword -prefix
} }
start() start()
@@ -19,82 +19,82 @@ start()
# screen idx scr emul # screen idx scr emul
# font name width height enc file # font name width height enc file
while read type arg1 arg2 arg3 arg4 arg5; do while read type arg1 arg2 arg3 arg4 arg5; do
case "${type}" in case "$type" in
\#*|"") \#*|"")
continue continue
;; ;;
font) font)
cmd=${wsfld} cmd=$wsfld
[ "${arg2}" != "-" ] && cmd="${cmd} -w ${arg2}" [ "$arg2" != "-" ] && cmd="$cmd -w $arg2"
[ "${arg3}" != "-" ] && cmd="${cmd} -h ${arg3}" [ "$arg3" != "-" ] && cmd="$cmd -h $arg3"
[ "${arg4}" != "-" ] && cmd="${cmd} -e ${arg4}" [ "$arg4" != "-" ] && cmd="$cmd -e $arg4"
cmd="${cmd} -N ${arg1} ${arg5}" cmd="$cmd -N $arg1 $arg5"
eval "${cmd}" eval "$cmd"
;; ;;
screen) screen)
cmd=${wscfg} cmd=$wscfg
[ "${arg2}" != "-" ] && cmd="${cmd} -t ${arg2}" [ "$arg2" != "-" ] && cmd="$cmd -t $arg2"
[ "${arg3}" != "-" ] && cmd="${cmd} -e ${arg3}" [ "$arg3" != "-" ] && cmd="$cmd -e $arg3"
cmd="${cmd} ${arg1}" cmd="$cmd $arg1"
eval "${cmd}" eval "$cmd"
;; ;;
keyboard) keyboard)
cmd=${wscfg} cmd=$wscfg
case "${arg1}" in case "$arg1" in
-|auto) -|auto)
cmd="${cmd} -k" cmd="$cmd -k"
;; ;;
*) *)
cmd="${cmd} -k ${arg1}" cmd="$cmd -k $arg1"
;; ;;
esac esac
${cmd} $cmd
;; ;;
encoding) encoding)
eval ${wsctl} -w "\"encoding=${arg1}\"" eval $wsctl -w "\"encoding=$arg1\""
;; ;;
mapfile) mapfile)
local entry= local entry=
while read entry; do while read entry; do
case "${entry}" in case "$entry" in
\#*|"") \#*|"")
continue continue
;; ;;
*) *)
cmd="${wsctl} -w \"map+=${entry}\"" cmd="$wsctl -w \"map+=$entry\""
eval "${cmd} >/dev/null" eval "$cmd >/dev/null"
;; ;;
esac esac
done < "${arg1}" done < "$arg1"
;; ;;
mux) mux)
eval "${wscfg} -m ${arg1}" eval "$wscfg -m $arg1"
;; ;;
setvar) setvar)
case "${arg1}" in case "$arg1" in
keyboard) keyboard)
cmd="${wsctl} -kw ${arg2}" cmd="$wsctl -kw $arg2"
;; ;;
display) display)
cmd="${wsctl} -dw ${arg2}" cmd="$wsctl -dw $arg2"
;; ;;
mouse) mouse)
cmd="${wsctl} -mw ${arg2}" cmd="$wsctl -mw $arg2"
;; ;;
*) *)
cmd="${wsctl} -w ${arg1}" cmd="$wsctl -w $arg1"
;; ;;
esac esac
eval "${cmd}" eval "$cmd"
;; ;;
esac esac
done < "${config}" done < "$config"
} }

View File

@@ -18,7 +18,7 @@ MAKE_LINKS= suffix=$${man\#*.}; \
MK= ../mk MK= ../mk
include ${MK}/sys.mk include ${MK}/sys.mk
include ${MK}/svnignore.mk include ${MK}/gitignore.mk
all: all:

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2008 Roy Marples .\" Copyright (c) 2008-2009 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without
@@ -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 Mar 26, 2008 .Dd May 1, 2009
.Dt RC-SERVICE 8 SMM .Dt RC-SERVICE 8 SMM
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
@@ -30,20 +30,26 @@
.Nd locate and run an OpenRC service with the given arguments .Nd locate and run an OpenRC service with the given arguments
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl i , -ifexists
.Ar service cmd .Ar service cmd
.Op Ar ... .Op Ar ...
.Nm .Nm
.Fl l , -list
.Nm
.Fl e , -exists .Fl e , -exists
.Ar service .Ar service
.Nm .Nm
.Fl l , -list
.Nm
.Fl r , -resolve .Fl r , -resolve
.Ar service .Ar service
.Sh DESCRIPTION .Sh DESCRIPTION
Service scripts could be in different places on different systems. Service scripts could be in different places on different systems.
.Nm .Nm
locates the specified service and runs it with the given arguments. locates the specified service and runs it with the given arguments.
If
.Fl i , -ifexists
is given then
.Nm
returns 0 even if the service does not exist.
.Pp .Pp
If given the If given the
.Fl l , -list .Fl l , -list
@@ -51,11 +57,11 @@ argument then
.Nm .Nm
will list all available services. will list all available services.
.Pp .Pp
.Fl -e , exists .Fl e , -exists
return 0 if it can find return 0 if it can find
.Ar service , .Ar service ,
otherwise -1. otherwise -1.
.Fl -r , resolve .Fl r , -resolve
does the same and also prints the full path of the service to stdout. does the same and also prints the full path of the service to stdout.
.Sh SEE ALSO .Sh SEE ALSO
.Xr rc 8 , .Xr rc 8 ,

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2009 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without
@@ -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 Arp 9, 2008 .Dd April 24, 2008
.Dt RC-STATUS 8 SMM .Dt RC-STATUS 8 SMM
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
@@ -30,7 +30,7 @@
.Nd show status info about runlevels .Nd show status info about runlevels
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl alsuC .Op Fl aclsuC
.Op Ar runlevel .Op Ar runlevel
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
@@ -43,6 +43,8 @@ The options are as follows:
.Bl -tag -width ".Fl test , test string" .Bl -tag -width ".Fl test , test string"
.It Fl a , -all .It Fl a , -all
Show all runlevels and their services. Show all runlevels and their services.
.It Fl c , -crashed
List all services that have crashed.
.It Fl l , -list .It Fl l , -list
List all defined runlevels. List all defined runlevels.
.It fl r , -runlevel .It fl r , -runlevel
@@ -57,6 +59,9 @@ Disable color output.
Show information only for the named Show information only for the named
.Ar runlevel . .Ar runlevel .
.El .El
.Sh EXIT STATUS
.Nm
exits 0, except when checking for crashed services and it doesn't find any.
.Sh SEE ALSO .Sh SEE ALSO
.Xr rc 8 , .Xr rc 8 ,
.Xr rc-update 8 .Xr rc-update 8

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2009 Roy Marples .\" Copyright (c) 2007-2009 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without
@@ -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 Jan 10, 2009 .Dd May 2, 2009
.Dt RC-UPDATE 8 SMM .Dt RC-UPDATE 8 SMM
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
@@ -30,10 +30,12 @@
.Nd add and remove services to and from a runlevel .Nd add and remove services to and from a runlevel
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op Fl s , -stack
.Ar add .Ar add
.Ar service .Ar service
.Op Ar runlevel ... .Op Ar runlevel ...
.Nm .Nm
.Op Fl s , -stack
.Ar delete .Ar delete
.Ar service .Ar service
.Op Ar runlevel ... .Op Ar runlevel ...
@@ -51,7 +53,8 @@ All services must reside in the
.Pa /etc/init.d .Pa /etc/init.d
or or
.Pa /usr/local/etc/init.d .Pa /usr/local/etc/init.d
directories. They must also conform to the OpenRC runscript standard. directories.
They must also conform to the OpenRC runscript standard.
.Pp .Pp
.Bl -tag -width "Fl a , -delete service" .Bl -tag -width "Fl a , -delete service"
.It Ar add Ar service .It Ar add Ar service
@@ -75,9 +78,14 @@ runlevels to show, then only those will be included in the output.
Show all services. Show all services.
.It Fl u , -update .It Fl u , -update
Forces an update of the dependency tree cache. Forces an update of the dependency tree cache.
This may be needed in the even of clock skew (a file in /etc is newer than the This may be needed in the event of clock skew (a file in /etc is newer than the
system clock). system clock).
.El .El
.Pp
If the
.Fl s , -stack
option is given then we either add or remove the runlevel from the runlevel.
This allows inheritance of runlevels.
.Sh SEE ALSO .Sh SEE ALSO
.Xr rc 8 , .Xr rc 8 ,
.Xr rc-status 8 .Xr rc-status 8

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2009 Roy Marples .\" Copyright (c) 2007-2009 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without
@@ -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 January 13, 2009 .Dd May 2, 2009
.Dt RC 8 SMM .Dt RC 8 SMM
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
@@ -35,10 +35,11 @@
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
first stops any services that are not for the runlevel and then starts any first stops any services that are not for the runlevel and then starts any
services added by services in the runlevel and from stacked runlevels added by
.Nm rc-update .Nm rc-update
that are not currently started. If no runlevel is specified then we use the that are not currently started.
current runlevel the system is currently in. If no runlevel is specified then we use the current runlevel the system
is currently in.
.Pp .Pp
There are some special runlevels that you should be aware of: There are some special runlevels that you should be aware of:
.Bl -tag -width "shutdown" .Bl -tag -width "shutdown"

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2008 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2008 Roy Marples .\" Copyright (c) 2007-2009 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without
@@ -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 September 19, 2008 .Dd July 1, 2009
.Dt RUNSCRIPT 8 SMM .Dt RUNSCRIPT 8 SMM
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
@@ -33,6 +33,7 @@
.Op Fl D , -nodeps .Op Fl D , -nodeps
.Op Fl d , -debug .Op Fl d , -debug
.Op Fl s , -ifstarted .Op Fl s , -ifstarted
.Op Fl Z , -dry-run
.Op Ar command ... .Op Ar command ...
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
@@ -81,6 +82,9 @@ Turns off all informational output the service generates.
Output from any non OpenRC comands is not affected. Output from any non OpenRC comands 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
Shows what services would be stopped and/or started without actually starting
or stopping them.
.El .El
.Pp .Pp
The following variables affect the service script: The following variables affect the service script:
@@ -134,21 +138,30 @@ 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 notimeout .It Dv -shutdown
Don't stop this service when shutting the system down.
This normally quite safe as remaining daemons will be sent a SIGTERM just
before final shutdown.
Network related services such as the network and dhcpcd init scripts normally
have this keyword.
.It Dv -stop
Don't stop this service when changing runlevels, even if not present.
This includes shutting the system down.
.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

View File

@@ -1,4 +1,4 @@
.\" Copyright 2007-2009 Roy Marples .\" Copyright (c) 2007-2009 Roy Marples
.\" All rights reserved .\" All rights reserved
.\" .\"
.\" Redistribution and use in source and binary forms, with or without .\" Redistribution and use in source and binary forms, with or without
@@ -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 January 1, 2009 .Dd September 4, 2009
.Dt START-STOP-DAEMON 8 SMM .Dt START-STOP-DAEMON 8 SMM
.Os OpenRC .Os OpenRC
.Sh NAME .Sh NAME
@@ -52,14 +52,6 @@ are provided, then we assume we are starting the daemon.
If a daemon cannot background by itself, nor create a pidfile, If a daemon cannot background by itself, nor create a pidfile,
.Nm .Nm
can do it for the daemon in a secure fashion. can do it for the daemon in a secure fashion.
.Nm
also ensures that a daemon really has started by checking to see if it still
exists for a short time after it has started. This is because some badly
written daemons like to daemonize before checking their configuration, doing
sanity checks, etc. Likewise,
.Nm
ensures that a daemon really stops as well, again by using the information
above to ensure that it's not running.
.Pp .Pp
If If
.Nm .Nm
@@ -84,6 +76,16 @@ listed in the
Match the process Match the process
.Ar name .Ar name
instead of a pidfile or executable. instead of a pidfile or executable.
.It Fl i , -interpreted
When matching process name, we should ensure that the correct interpreter
is also matched.
So if the daemon foo starts off like so
.D1 #!/usr/bin/perl -w
then
.Nm
matches the process
.D1 /usr/bin/perl -w foo
If an interpreted daemon changes it's 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
@@ -95,8 +97,9 @@ name here also.
Print the action(s) that would be taken, but don't actually do anything. 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
P
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:
@@ -141,6 +144,12 @@ 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
Wait
.Ar seconds
after starting and check that daemon is still running.
Useful for daemons that check configuration after forking or stopping race
conditions where the pidfile is written out after forking.
.It Fl 2 , -stderr Ar logfile .It Fl 2 , -stderr Ar logfile
The same thing as The same thing as
.Fl 1 , -stdout .Fl 1 , -stdout
@@ -150,10 +159,9 @@ but with the standard error output.
These options are only used for stopping daemons: These options are only used for stopping daemons:
.Bl -tag -width indent .Bl -tag -width indent
.It Fl R , -retry Ar timeout | Ar signal Ns / Ns Ar timeout .It Fl R , -retry Ar timeout | Ar signal Ns / Ns Ar timeout
You can either specify a timeout or a multiple signal/timeout pairs as a You can either specify a timeout in seconds or a multiple signal/timeout
stopping schedule. pairs as a stopping schedule.
If not specified then a default value of SIGTERM/0 is If not specified then a default value of SIGTERM/5 is assumed.
assumed.
.El .El
.Sh ENVIRONMENT .Sh ENVIRONMENT
.Va SSD_NICELEVEL .Va SSD_NICELEVEL
@@ -161,7 +169,8 @@ can also set the scheduling priority of the daemon, but the command line
option takes precedence. option takes precedence.
.Pp .Pp
.Va SSD_STARTWAIT .Va SSD_STARTWAIT
overrides the number of milliseconds set in As the
.Fl w , -wait option above.
.Pa /etc/rc.conf .Pa /etc/rc.conf
.Nm .Nm
waits for to check the daemon is still running. waits for to check the daemon is still running.

View File

@@ -1,4 +1,4 @@
# Copyright 2008 Roy Marples <roy@marples.name> # Copyright (c) 2008 Roy Marples <roy@marples.name>
# Setup some good default CFLAGS # Setup some good default CFLAGS
CFLAGS?= -O2 CFLAGS?= -O2

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