Compare commits

..

13 Commits

Author SHA1 Message Date
William Hubbs
bc6ab0f8f3 update changelog 2015-10-14 17:46:55 -05:00
William Hubbs
248a7dcda3 mtab: typo fix 2015-10-14 17:43:31 -05:00
William Hubbs
bb451fd7b4 update ChangeLog 2015-10-14 17:05:33 -05:00
William Hubbs
fb23cbe204 mtab: make /etc/mtab as a file configurable 2015-10-14 16:00:08 -05:00
William Hubbs
a4346bb7f5 start work on 0.18.3 2015-10-14 15:59:52 -05:00
William Hubbs
776346e2cd update changelog 2015-10-13 17:49:03 -05:00
William Hubbs
ce71ffbfbe openrc-run.sh: fix new required_* tests to exit properly 2015-10-13 17:42:46 -05:00
William Hubbs
d9ee8ca584 update changelog 2015-10-13 16:29:15 -05:00
William Hubbs
4e44e2cd73 typo fix
X-Gentoo-Bug: 563010
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=563010
2015-10-13 16:27:35 -05:00
William Hubbs
88b807f9bc increment version number 2015-10-13 15:57:25 -05:00
William Hubbs
feba5d86b7 mountinfo: make sure the netdev variable is initialized on Linux
This fixes the following regression:

X-Gentoo-Bug: 562668
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=562668
2015-10-13 09:10:47 -05:00
William Hubbs
3b1e96a6a3 openrc-run.sh: allow spaces in required_{files,dirs}
X-Gentoo-Bug: 562320
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=562320
2015-10-13 09:10:47 -05:00
William Hubbs
79998bdf9c increment version number 2015-10-13 09:10:28 -05:00
233 changed files with 4402 additions and 6985 deletions

2
.gitignore vendored
View File

@@ -1,4 +1,4 @@
*.gz *.bz2
*.diff *.diff
*.patch *.patch

99
AUTHORS
View File

@@ -1,99 +0,0 @@
Alessio Ababilov <ilovedevlinux@gmail.com>
Alexander Berntsen <alexander@plaimi.net>
Alexander Mezin <mezin.alexander@gmail.com>
Alexander Tsoy <alexander@tsoy.me>
Alexander Vershilov <alexander.vershilov@gmail.com>
Alexander Vershilov <qnikst@gentoo.org>
Alexander V Vershilov <qnikst@gentoo.org>
Alexey Shvetsov <alexxy@gentoo.org>
Alon Bar-Lev <alon.barlev@gmail.com>
Amadeusz Żołnowski <aidecoe@aidecoe.name>
Andrew Gregory <andrew.gregory.8@gmail.com>
Anthony Donnelly <Amzo@archbsd.com>
Anthony G. Basile <basile@opensource.dyc.edu>
Anthony G. Basile <blueness@gentoo.org>
Austin S. Hemmelgarn <ahferroin7@gmail.com>
Benda Xu <heroxbd@gentoo.org>
Björn Baumbach <bb@sernet.de>
Charlie <root@uberlaptop.development.ltl>
Chris Richards <gizmo@giz-works.com>
Christian <christian@ch-sc.de>
Christian Ruppert <idl0r@gentoo.org>
Christian Wetzig <gentoo@wetzig.de>
Christopher Head <chead@telus.net>
Consus <consus@gmx.com>
Daniel Mierswa <impulze@impulze.org>
Daniel Robbins <drobbins@funtoo.org>
Diego Elio Pettenò <flameeyes@flameeyes.eu>
Diego Elio Pettenò <flameeyes@gmail.com>
Diego <flameeyes@gentoo.org>
Dirk Sondermann <ds-gentoo@dyximaq.de>
Doug Freed <dwfreed@mtu.edu>
Doug Goldstein <cardoe@cardoe.com>
Ed Wildgoose <gentoo@wildgooses.com>
Eray Aslan <eras@gentoo.org>
Eugeny Shkrigunov <eshkrig@gmail.com>
Fedja Beader <specing@contact.me.on.irc.freenode.net>
Flex <frostynova@gmail.com>
Gabriele Giacone <1o5g4r8o@gmail.com>
Gary <admin@garyshood.com>
Gilles Oivier <g.olivier@wanadoo.fr>
Hank Leininger <hlein@korelogic.com>
Ian Stakenvicius <axs@gentoo.org>
Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
James Le Cuirot <chewi@aura-online.co.uk>
Jan Psota <jasiu@belsznica.pl>
Jason Zaman <jason@perfinion.com>
Joe Harvell <jharvell@dogpad.net>
Joe M <joe9mail@gmail.com>
Johan Bergström <bugs@bergstroem.nu>
Jory A. Pratt <anarchy@gentoo.org>
Juan RP <xtraeme@gmail.com>
Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
Kfir Lavi <lavi.kfir@gmail.com>
Kirill Elagin <kirelagin@gmail.com>
Lars Wendler <polynomial-c@gentoo.org>
Lorand Kelemen <lorand.kelemen@indgroup.eu>
Marc Joliet <marcec@gmx.de>
Marien Zwart <marienz@gentoo.org>
Michal Gorny <gentoo@mgorny.alt.pl>
Mihai Moldovan <ionic@ionic.de>
Mike Frysinger <vapier@gentoo.org>
Mike Gilbert <floppym@gentoo.org>
Nao Nakashima <nao.nakashima@gmail.com>
Natanael Copa <natanael.copa@gmail.com>
Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
Ned Ludd <solar@gentoo.org>
Olivier Huber <oli.huber@gmail.com>
Patrick Lauer <patrick@gentoo.org>
Petre Rodan <petre.rodan@simplex.ro>
Piotr Karbowski <piotr.karbowski@gmail.com>
Ralph Sennhauser <sera@gentoo.org>
Richard Yao <ryao@cs.stonybrook.edu>
Rick Farina (ZeroChaos) <sidhayn@gmail.com>
Rick Farina (Zero_Chaos) <zerochaos@gentoo.org>
Robin H. Johnson <robbat2@gentoo.org>
Robin H. Johnson <robbat2@orbis-terrarum.net>
Robin Johnson <robbat2@gentoo.org>
Roy Marples <roy@marples.name>
Salah Coronya <salah.coronya@gmail.com>
Sebastian Thorarensen <indigo176@blinkenshell.org>
Semen Maryasin <marsoft@ya.ru>
Sergei Trofimovich <slyfox@gentoo.org>
Seth Robertson <in-gentoo@baka.org>
S. Gilles <sgilles@umd.edu>
Stefan Knoblich <s.knoblich@axsentis.de>
Stef Simoens <stef.simoens@scarlet.be>
Steve L <slong@rathaus.eclipse.co.uk>
Steven Chamberlain <steven@pyro.eu.org>
Svante Signell <svante.signell@gmail.com>
Sven Vermeulen <sven.vermeulen@siphos.be>
Thomas D <whissi@whissi.de>
Thomas Pfaff <tpfaff@gmx.net>
Trevor Summers Smith <trevorsummerssmith@gmail.com>
Walter <walter@pratyeka.org>
William Hubbs <w.d.hubbs@gmail.com>
William Hubbs <williamh@gentoo.org>
Will Miles <wmiles@sgl.com>
Yun Zheng Hu <hu@fox-it.com>
Yuta SATOH <nigoro.gentoo@0x100.com>

2540
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@@ -38,7 +38,7 @@ Who:
When: 1.0 When: 1.0
Why: Deprecated in favor of extra_commands, extra_started_commands Why: Depprecated in favor of extra_commands, extra_started_commands
and extra_stopped_commands. and extra_stopped_commands.
Who: Who:
@@ -47,32 +47,15 @@ Who:
When: 1.0 When: 1.0
Why: Deprecated in favor of executable scripts in @SYSCONFDIR@/local.d Why: Depprecated in favor of executable scripts in @SYSCONFDIR@/local.d
Who: Who:
## the mtab service script ## the mtab service script
When: force /etc/mtab to link to /proc/self/mounts in 1.0, remove When: make warnings more visible in 1.0, remove in 2.0
service in 2.0
Why: /etc/mtab should be a symbolic link to /proc/self/mounts on modern Why: /etc/mtab should be a symbolic link to /proc/self/mounts on modern
Linux systems Linux systems
Who: Who:
## C API Functions in rc.h
If you have a c program that links to librc and uses functions from
there, this section will list API functions which are deprecated and
will be removed along with the reason they are being removed.
### rc_getline()
When: 1.0
Why: The getline() function was standardized in POSIX.1-2008, so it
should be available on POSIX systems.
Who:

View File

@@ -54,9 +54,4 @@ Daniel Robbins continues to maintain an independent, forked
version of OpenRC for Funtoo Linux, which includes a Funtoo-specific network version of OpenRC for Funtoo Linux, which includes a Funtoo-specific network
configuration system. configuration system.
On 17-Dec-2015 utc, Roy gave the OpenRC developers permission to replace his
copyrights in all source files with a generic Copyright assertion for
the OpenRC developers as long as we keep the original copyright in the
binaries and LICENSE file.
[1] http://www.gentoo.org/news/en/gwn/20040426-newsletter.xml [1] http://www.gentoo.org/news/en/gwn/20040426-newsletter.xml

24
LICENSE
View File

@@ -1,24 +0,0 @@
Copyright (c) 2007-2008, Roy Marples <roy@marples.name>
Copyright (c) 2007-2015, the OpenRC authors
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,12 +1,6 @@
# Copyright (c) 2007-2015 The OpenRC Authors. # OpenRC Makefile
# See the Authors file at the top-level directory of this distribution and # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# https://github.com/OpenRC/openrc/blob/master/AUTHORS # Released under the 2-clause BSD license.
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
TOP:= ${dir ${realpath ${firstword ${MAKEFILE_LIST}}}} TOP:= ${dir ${realpath ${firstword ${MAKEFILE_LIST}}}}
MK= ${TOP}/mk MK= ${TOP}/mk

View File

@@ -1,3 +1,3 @@
NAME= openrc NAME= openrc
VERSION= 0.22.1 VERSION= 0.18.3
PKG= ${NAME}-${VERSION} PKG= ${NAME}-${VERSION}

52
NEWS.md
View File

@@ -3,58 +3,6 @@
This file will contain a list of notable changes for each release. Note This file will contain a list of notable changes for each release. Note
the information in this file is in reverse order. the information in this file is in reverse order.
## OpenRC-0.22
In previous versions of OpenRC, configuration information was processed
so that service-specific configuration stored in /etc/conf.d/* was
overridden by global configuration stored in /etc/rc.conf. This release
reverses that. Global configuration is now overridden by
service-specific configuration.
The swapfiles service, which was basically a copy of the swap service,
has been removed. If you are only using swap partitions, this change
will not affect you. If you are using swap files, please adjust the
dependencies of the swap service as shown in /etc/conf.d/swap.
## OpenRC-0.21
This version adds a daemon supervisor which can start daemons and
restart them if they crash. See supervise-daemon-guide.md in the
distribution for details on its use.
It is now possible to mark certain mount points as critical. If these
mount points are unable to be mounted, localmount or netmount will fail.
This is handled in /etc/conf.d/localmount and /etc/conf.d/netmount. See
these files for the setup.
The deprecation messages in 0.13.x for runscript and rc are now
made visible in preparation for the removal of these binaries in 1.0.
The steps you should take to get rid of these warnings is to run openrc
in initialization steps instead of rc and change the shebang lines in
service scripts to refer to "openrc-run" instead of "runscript".
In 0.21.4, a modules-load service was added. This works like the
equivalent service in systemd. It looks for files named *.conf first in
/usr/lib/modules-load.d, then /run/modules-load.d, then
/etc/modules-load.d. These files contain a list of modules, one per
line, which should be loaded into the kernel. If a file name appears in
/run/modules-load.d, it overrides a file of the same name in
/usr/lib/modules-load.d. A file appearing in /etc/modules-load.d
overrides a file of the same name in both previous directories.
## OpenRC-0.19
This version adds a net-online service. By default, this
service will check all known network interfaces for a configured
interface or a carrier. It will register as started only when all
interfaces are configured and there is at least a carrier on one
interface. The behaviour of this service can be modified in
/etc/conf.d/net-online.
Currently, this only works on Linux, but if anyone wants to port to
*bsd, that would be welcomed.
## OpenRC-0.18.3 ## OpenRC-0.18.3
Modern Linux systems expect /etc/mtab to be a symbolic link to Modern Linux systems expect /etc/mtab to be a symbolic link to

View File

@@ -43,6 +43,9 @@ We don't support building a static OpenRC with PAM.
You may need to use `PROGLDFLAGS=-Wl,-Bstatic` on glibc instead of just `-static`. You may need to use `PROGLDFLAGS=-Wl,-Bstatic` on glibc instead of just `-static`.
If you debug memory under valgrind, add `-DDEBUG_MEMORY`
to your `CPPFLAGS` so that all malloc memory should be freed at exit.
If you are building OpenRC for a Gentoo Prefix installation, add `MKPREFIX=yes`. If you are building OpenRC for a Gentoo Prefix installation, add `MKPREFIX=yes`.
`PKG_PREFIX` should be set to where packages install to by default. `PKG_PREFIX` should be set to where packages install to by default.

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

@@ -0,0 +1,2 @@
network
staticroute

View File

@@ -1,21 +1,28 @@
include ../mk/net.mk include ../mk/net.mk
DIR= ${CONFDIR} DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount netmount swap urandom tmpfiles \ CONF= bootmisc fsck hostname localmount netmount urandom tmpfiles \
${CONF-${OS}} ${CONF-${OS}}
ifeq (${MKNET},yes) ifeq (${MKNET},yes)
CONF+= network staticroute CONF+= network staticroute
TARGETS+= network staticroute
CLEANFILES+= network staticroute
endif endif
MK= ../mk MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
CONF-FreeBSD= ipfw modules moused powerd rarpd savecore syscons CONF-FreeBSD= ipfw moused powerd rarpd savecore syscons
CONF-Linux= consolefont devfs dmesg hwclock keymaps killprocs modules mtab \ CONF-Linux= consolefont devfs dmesg hwclock keymaps killprocs modules mtab
net-online
CONF-NetBSD= moused rarpd savecore CONF-NetBSD= moused rarpd savecore
include ${MK}/scripts.mk include ${MK}/scripts.mk
network: network.in network${SFX}
cat $^ > $@
staticroute: staticroute${SFX}
cp $@${SFX} $@

View File

@@ -8,8 +8,3 @@ wipe_tmp="YES"
# Write the initial dmesg log into /var/log/dmesg after boot # Write the initial dmesg log into /var/log/dmesg after boot
# This may be useful if you need the kernel boot log afterwards # This may be useful if you need the kernel boot log afterwards
log_dmesg="YES" log_dmesg="YES"
# Save the previous dmesg log to dmesg.old
# This may be useful if you need to compare the current boot to the
# previous one.
#previous_dmesg=no

View File

@@ -32,9 +32,3 @@ fsck_on_battery="YES"
# This is useful when periodic filesystem checks are causing undesirable # This is useful when periodic filesystem checks are causing undesirable
# delays at startup, but such delays at shutdown are acceptable. # delays at startup, but such delays at shutdown are acceptable.
fsck_shutdown="NO" fsck_shutdown="NO"
# fsck_abort_on_errors can be set to no to cause fsck to not abort on
# errors.
# This is useful when periodic filesystem checks are causing undesirable
# aborts.
fsck_abort_on_errors="YES"

View File

@@ -1,10 +1,3 @@
# Stop the unmounting of certain points. # Stop the unmounting of certain points.
# This could be useful for some NFS related work. # This could be useful for some NFS related work.
#no_umounts="/dir1:/var/dir2" #no_umounts="/dir1:/var/dir2"
#
# Mark certain mount points as critical.
# This contains aspace separated list of mount points which should be
# considered critical. If one of these mount points cannot be mounted,
# localmount will fail.
# By default, this is empty.
#critical_mounts="/home /var"

View File

@@ -1,22 +1,18 @@
# Linux users can define a list of modules for a specific kernel version, # You can define a list modules for a specific kernel version,
# a released kernel version, a main kernel version or all kernel versions. # a released kernel version, a main kernel version or just a list.
# The most specific versioned variable will take precedence. # The most specific versioned variable will take precedence.
# FreeBSD users can only use the modules="foo bar" setting.
#modules_2_6_23_gentoo_r5="ieee1394 ohci1394" #modules_2_6_23_gentoo_r5="ieee1394 ohci1394"
#modules_2_6_23="tun ieee1394" #modules_2_6_23="tun ieee1394"
#modules_2_6="tun" #modules_2_6="tun"
#modules_2="ipv6" #modules_2="ipv6"
#modules="ohci1394" #modules="ohci1394"
# Linux users can give modules a different name when they load - the new name # You can give modules a different name when they load - the new name
# will also be used to pick arguments below. # will also be used to pick arguments below.
# This is not supported on FreeBSD.
#modules="dummy:dummy1" #modules="dummy:dummy1"
# Linux users can give the modules some arguments if needed, per version # Give the modules some arguments if needed, per version if necessary.
# if necessary.
# Again, the most specific versioned variable will take precedence. # Again, the most specific versioned variable will take precedence.
# This is not supported on FreeBSD.
#module_ieee1394_args="debug" #module_ieee1394_args="debug"
#module_ieee1394_args_2_6_23_gentoo_r5="debug2" #module_ieee1394_args_2_6_23_gentoo_r5="debug2"
#module_ieee1394_args_2_6_23="debug3" #module_ieee1394_args_2_6_23="debug3"

View File

@@ -1,15 +0,0 @@
# The interfaces setting controls which interfaces the net-online
# service considers in deciding whether the network is active. By
# default, it is all ethernet or wireless LAN interfaces.
#interfaces=""
# This setting controls whether a ping to the default gateway is
# included in the test for network connectivity after all interfaces
# are active.
#ping_default_gateway=no
# The timeout setting controls how long the net-online service waits
# for the network to be configured.
# The default is 120 seconds.
# if this is set to 0, the wait is infinite.
#timeout=120

View File

@@ -25,11 +25,11 @@
#rc_need="net.eth1 net.eth2" #rc_need="net.eth1 net.eth2"
# #
# If you are using a dynamic network management tool like # If you are using a dynamic network management tool like
# NetworkManager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to # networkmanager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to
# manage the network interfaces with the routes to your netmounts, you # manage the network interfaces with the routes to your netmounts, you
# should list that tool. # should list that tool.
# #
#rc_need="NetworkManager" #rc_need="networkmanager"
#rc_need="dhcpcd" #rc_need="dhcpcd"
#rc_need="wicd" #rc_need="wicd"
# #
@@ -38,10 +38,3 @@
# other words, please change it to be more suited to your system. # other words, please change it to be more suited to your system.
# #
rc_need="net" rc_need="net"
#
# Mark certain mount points as critical.
# This contains aspace separated list of mount points which should be
# considered critical. If one of these mount points cannot be mounted,
# netmount will fail.
# By default, this is empty.
#critical_mounts="/home /var"

View File

@@ -1,80 +0,0 @@
# 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 keep_network=NO
# 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 add it to the boot or
# default runlevel.
# NIS users can set the domain name here
#domainname="foobar"
# You can add a default route.
# The way this is done is slightly different depending on the operating system.
#
# *BSD:
#defaultroute="192.168.0.1"
#defaultroute6="2001:a:b:c"
#Hurd/Linux (ifconfig):
#defaultroute="gw 192.168.0.1"
#defaultroute6="gw 2001:a:b:c"
# The remainder of this file applies to Linux only and shows how
# iproute2 is supported along with other examples.
# ifconfig under Linux is not that powerful and doesn't easily handle
# multiple addresses
# On the other hand, iproute2 is quite powerful and is also supported
#ip_eth0="192.168.0.10/24; 192.168.10.10/24"
# You can also use iproute2 to add the default route.
#defaultiproute="via 192.168.0.1"
#defaultiproute6="via 2001:a:b:c"
# ip doesn't handle MTU like ifconfig, but we can do it like so
#ifup_eth0="ip link set \$int mtu 1500"
# Create a bonded interface
#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"

4
conf.d/network.BSD.in Normal file
View File

@@ -0,0 +1,4 @@
# You can assign a default route
#defaultroute="192.168.0.1"
#defaultroute6="2001:a:b:c"

View File

@@ -0,0 +1,4 @@
# You can assign a default route
#defaultroute="192.168.0.1"
#defaultroute6="2001:a:b:c"

4
conf.d/network.GNU.in Normal file
View File

@@ -0,0 +1,4 @@
# You can assign a default route
#defaultroute="gw 192.168.0.1"
#defaultroute6="gw 2001:a:b:c"

43
conf.d/network.Linux.in Normal file
View File

@@ -0,0 +1,43 @@
# You can assign a default route
#defaultroute="gw 192.168.0.1"
#defaultroute6="gw 2001:a:b:c"
# ifconfig under Linux is not that powerful and doesn't easily handle
# 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"
# You can also use ip to add the default route.
#defaultiproute="via 192.168.0.1"
#defaultiproute6="via 2001:a:b:c"
# ip doesn't handle MTU like ifconfig, but we can do it like so
#ifup_eth0="ip link set \$int mtu 1500"
# Create a bonded interface
#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 keep_network=NO
# 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.
# NIS users can set the domain name here
#domainname="foobar"

View File

@@ -1,26 +0,0 @@
# Static routes are defined differently depending on your operating
# system, so please be sure to use the correct syntax.
# Do not use this file to define the default route.
# In all settings, multiple routes should be separated using ; or new lines.
# Define static routes on Linux using route. See route(8) for syntax.
#staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1
#net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1"
# Define static routes on Linux using iproute2. See ip(8) for syntax.
#staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1"
# Define static routes on GNU/Hurd. See route(8) for syntax.
# /etc/route.conf(5) takes precedence over this configuration.
# FIXME: "net ..." not supported
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 --address 10.73.1.1
#net 192.168.1.0 -netmask 255.255.255.0 --address 10.73.1.1"
# Define static routes on GNU/KFreeBSD. See route(8) for syntax.
#staticroute="net 192.168.0.0 10.73.1.1 netmask 255.255.255.0
#net 192.168.1.0 10.73.1.1 netmask 255.255.255.0"
# Define static routes on other BSD systems. See route(8) for syntax.
# /etc/route.conf(5) takes precedence over this configuration.
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 10.73.1.1
#net 192.168.1.0 -netmask 255.255.255.0 10.73.1.1"

View File

@@ -0,0 +1,6 @@
# Separate multiple routes using ; or new lines.
# /etc/route.conf(5) takes precedence over this configuration.
# Example static routes. See route(8) for syntax.
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 10.73.1.1
#net 192.168.1.0 -netmask 255.255.255.0 10.73.1.1"

View File

@@ -0,0 +1,5 @@
# Separate multiple routes using ; or new lines.
# Example static routes. See route(8) for syntax.
#staticroute="net 192.168.0.0 10.73.1.1 netmask 255.255.255.0
#net 192.168.1.0 10.73.1.1 netmask 255.255.255.0"

View File

@@ -0,0 +1,7 @@
# Separate multiple routes using ; or new lines.
# /etc/route.conf(5) takes precedence over this configuration.
# Example static routes. See route(8) for syntax.
# FIXME: "net ..." not supported
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 --address 10.73.1.1
#net 192.168.1.0 -netmask 255.255.255.0 --address 10.73.1.1"

View File

@@ -0,0 +1,8 @@
# Separate multiple routes using ; or new lines.
# Example static routes. See route(8) for syntax.
#staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1
#net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1"
# Example static routes using iproute2. See ip(8) for syntax.
#staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1"

View File

@@ -1,13 +0,0 @@
# If you are only using local swap partitions, you should not change
# this file. Otherwise, you need to uncomment the below rc_before line
# followed by the appropriate rc_need line.
#rc_before="!localmount"
#
# If you are using swap files stored on local file systems, uncomment
# this line.
#rc_need="localmount"
#
# If you are using swap files stored on network file systems or swap
# partitions stored on network block devices such as iSCSI, uncomment
# this line.
#rc_need="netmount"

1
etc/.gitignore vendored
View File

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

View File

@@ -1,8 +1,10 @@
DIR= ${SYSCONFDIR} DIR= ${SYSCONFDIR}
SRCS= rc.in rc.shutdown.in SRCS= rc.conf.in rc.in rc.shutdown.in
BIN= ${BIN-${OS}} BIN= ${BIN-${OS}}
CONF= rc.conf ${BIN-${OS}} CONF= rc.conf ${BIN-${OS}}
CLEANFILES+= rc.conf
MK= ../mk MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
@@ -21,3 +23,6 @@ CONF-NetBSD=
SED_EXTRA= ${SED_EXTRA-${OS}} SED_EXTRA= ${SED_EXTRA-${OS}}
include ${MK}/scripts.mk include ${MK}/scripts.mk
rc.conf: rc.conf.in rc.conf.${OS}
${SED} ${SED_REPLACE} ${SED_EXTRA} $^ > $@

13
etc/rc.conf.DragonFly Normal file
View File

@@ -0,0 +1,13 @@
##############################################################################
# DragonFly BSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on DragonFly BSD:
# "" - nothing special
# "jail" - DragonFly BSD jails
# "prefix" - Prefix
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""

13
etc/rc.conf.FreeBSD Normal file
View File

@@ -0,0 +1,13 @@
##############################################################################
# FreeBSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on FreeBSD:
# "" - nothing special
# "jail" - FreeBSD jails
# "prefix" - Prefix
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""

14
etc/rc.conf.GNU Normal file
View File

@@ -0,0 +1,14 @@
##############################################################################
# GNU/Hurd SPECIFIC OPTIONS
# This is the subsystem type. Valid options on GNU/Hurd:
# "" - nothing special
# "subhurd" - Hurd subhurds (to be checked)
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""
# This is the number of tty's used in most of the rc-scripts (like
# consolefont, numlock, etc ...)
#rc_tty_number=6?

11
etc/rc.conf.GNU-kFreeBSD Normal file
View File

@@ -0,0 +1,11 @@
##############################################################################
# GNU/kFreeBSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on GNU/kFreeBSD:
# "" - nothing special
# "jail" - FreeBSD jails (not yet implemented)
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""

88
etc/rc.conf.Linux Normal file
View File

@@ -0,0 +1,88 @@
##############################################################################
# LINUX SPECIFIC OPTIONS
# This is the subsystem type. Valid options on Linux:
# "" - nothing special
# "lxc" - Linux Containers
# "openvz" - Linux OpenVZ
# "prefix" - Prefix
# "uml" - Usermode Linux
# "vserver" - Linux vserver
# "systemd-nspawn" - Container created by the systemd-nspawn utility
# "xen0" - Xen0 Domain
# "xenU" - XenU Domain
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""
# This is the number of tty's used in most of the rc-scripts (like
# consolefont, numlock, etc ...)
rc_tty_number=12
##############################################################################
# CGROUPS RESOURCE MANAGEMENT
# If you have cgroups turned on in your kernel, this switch controls
# whether or not a group for each controller is mounted under
# /sys/fs/cgroup.
# None of the other options in this section work if this is set to "NO".
#rc_controller_cgroups="YES"
# The following settings allow you to set up values for the cgroup
# controllers for your services.
# They can be set in this file;, however, if you do this, the settings
# will apply to all of your services.
# If you want different settings for each service, place the settings in
# /etc/conf.d/foo for service foo.
# The format is to specify the names of the settings followed by their
# values. Each variable can hold multiple settings.
# For example, you would use this to set the cpu.shares setting in the
# cpu controller to 512 for your service.
# rc_cgroup_cpu="
# cpu.shares 512
# "
#
#For more information about the adjustments that can be made with
#cgroups, see Documentation/cgroups/* in the linux kernel source tree.
# Set the blkio controller settings for this service.
#rc_cgroup_blkio=""
# Set the cpu controller settings for this service.
#rc_cgroup_cpu=""
# Add this service to the cpuacct controller (any value means yes).
#rc_cgroup_cpuacct=""
# Set the cpuset controller settings for this service.
#rc_cgroup_cpuset=""
# Set the devices controller settings for this service.
#rc_cgroup_devices=""
# Set the hugetlb controller settings for this service.
#rc_cgroup_hugetlb=""
# Set the memory controller settings for this service.
#rc_cgroup_memory=""
# Set the net_cls controller settings for this service.
#rc_cgroup_net_cls=""
# Set the net_prio controller settings for this service.
#rc_cgroup_net_prio=""
# Set the pids controller settings for this service.
#rc_cgroup_pids=""
# Set this to YES if yu want all of the processes in a service's cgroup
# killed when the service is stopped or restarted.
# This should not be set globally because it kills all of the service's
# child processes, and most of the time this is undesirable. Please set
# it in /etc/conf.d/<service>.
# To perform this cleanup manually for a stopped service, you can
# execute cgroup_cleanup with /etc/init.d/<service> cgroup_cleanup or
# rc-service <service> cgroup_cleanup.
# rc_cgroup_cleanup="NO"

14
etc/rc.conf.NetBSD Normal file
View File

@@ -0,0 +1,14 @@
##############################################################################
# NetBSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on NetBSD:
# "" - nothing special
# "prefix" - Prefix
# "xen0" - Xen0 Domain
# "xenU" - XenU Domain
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""

View File

@@ -29,20 +29,17 @@
# come up. # come up.
#rc_depend_strict="YES" #rc_depend_strict="YES"
# rc_hotplug controls which services 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.
# A hotplugged service is one started by a dynamic dev manager when a matching # A hotplugged service is one started by a dynamic dev manager when a matching
# hardware device is found. # hardware device is found.
# Hotplugged services appear in the "hotplugged" runlevel. # This service is intrinsically included in the boot runlevel.
# If rc_hotplug is set to any value, we compare the name of this service # To disable services, prefix with a !
# to every pattern in the value, from left to right, and we allow the
# service to be hotplugged if it matches a pattern, or if it matches no
# patterns. Patterns can include shell wildcards.
# To disable services from being hotplugged, prefix patterns with "!".
#If rc_hotplug is not set or is empty, all hotplugging is disabled.
# Example - rc_hotplug="net.wlan !net.*" # Example - rc_hotplug="net.wlan !net.*"
# This allows net.wlan and any service not matching net.* to be hotplugged. # This allows net.wlan and any service not matching net.* to be plugged.
# Example - rc_hotplug="!net.*" # Example - rc_hotplug="*"
# This allows services that do not match "net.*" to be hotplugged. # This allows all services to be hotplugged
#rc_hotplug="*"
# rc_logger launches a logging daemon to log the entire rc process to # rc_logger launches a logging daemon to log the entire rc process to
# /var/log/rc.log # /var/log/rc.log
@@ -117,9 +114,6 @@
# Some daemons are started and stopped via start-stop-daemon. # Some daemons are started and stopped via start-stop-daemon.
# We can set some things on a per service basis, like the nicelevel. # We can set some things on a per service basis, like the nicelevel.
#SSD_NICELEVEL="-19" #SSD_NICELEVEL="-19"
# Or the ionice level. The format is class[:data] , just like the
# --ionice start-stop-daemon parameter.
#SSD_IONICELEVEL="2:2"
# Pass ulimit parameters # Pass ulimit parameters
# If you are using bash in POSIX mode for your shell, note that the # If you are using bash in POSIX mode for your shell, note that the
@@ -149,102 +143,6 @@
#rc_foo_bar_after="clock" #rc_foo_bar_after="clock"
# You can also remove dependencies. # You can also remove dependencies.
# This is mainly used for saying which services do NOT provide net. # This is mainly used for saying which servies do NOT provide net.
#rc_net_tap0_provide="!net" #rc_net_tap0_provide="!net"
# This is the subsystem type.
# It is used to match against keywords set by the keyword call in the
# depend function of service scripts.
#
# It should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
# If it is commented out, automatic detection will be used.
#
# The list below shows all possible settings as well as the host
# operating systems where they can be used and autodetected.
#
# "" - nothing special
# "docker" - Docker container manager (Linux)
# "jail" - Jail (DragonflyBSD or FreeBSD)
# "lxc" - Linux Containers
# "openvz" - Linux OpenVZ
# "prefix" - Prefix
# "rkt" - CoreOS container management system (Linux)
# "subhurd" - Hurd subhurds (to be checked)
# "systemd-nspawn" - Container created by systemd-nspawn (Linux)
# "uml" - Usermode Linux
# "vserver" - Linux vserver
# "xen0" - Xen0 Domain (Linux and NetBSD)
# "xenU" - XenU Domain (Linux and NetBSD)
#rc_sys=""
# on Linux and Hurd, this is the number of ttys allocated for logins
# It is used in the consolefont, keymaps, numlock and termencoding
# service scripts.
rc_tty_number=12
##############################################################################
# LINUX CGROUPS RESOURCE MANAGEMENT
# If you have cgroups turned on in your kernel, this switch controls
# whether or not a group for each controller is mounted under
# /sys/fs/cgroup.
# None of the other options in this section work if this is set to "NO".
#rc_controller_cgroups="YES"
# The following settings allow you to set up values for the cgroup
# controllers for your services.
# They can be set in this file;, however, if you do this, the settings
# will apply to all of your services.
# If you want different settings for each service, place the settings in
# /etc/conf.d/foo for service foo.
# The format is to specify the names of the settings followed by their
# values. Each variable can hold multiple settings.
# For example, you would use this to set the cpu.shares setting in the
# cpu controller to 512 for your service.
# rc_cgroup_cpu="
# cpu.shares 512
# "
#
#For more information about the adjustments that can be made with
#cgroups, see Documentation/cgroups/* in the linux kernel source tree.
# Set the blkio controller settings for this service.
#rc_cgroup_blkio=""
# Set the cpu controller settings for this service.
#rc_cgroup_cpu=""
# Add this service to the cpuacct controller (any value means yes).
#rc_cgroup_cpuacct=""
# Set the cpuset controller settings for this service.
#rc_cgroup_cpuset=""
# Set the devices controller settings for this service.
#rc_cgroup_devices=""
# Set the hugetlb controller settings for this service.
#rc_cgroup_hugetlb=""
# Set the memory controller settings for this service.
#rc_cgroup_memory=""
# Set the net_cls controller settings for this service.
#rc_cgroup_net_cls=""
# Set the net_prio controller settings for this service.
#rc_cgroup_net_prio=""
# Set the pids controller settings for this service.
#rc_cgroup_pids=""
# Set this to YES if you want all of the processes in a service's cgroup
# killed when the service is stopped or restarted.
# This should not be set globally because it kills all of the service's
# child processes, and most of the time this is undesirable. Please set
# it in /etc/conf.d/<service>.
# To perform this cleanup manually for a stopped service, you can
# execute cgroup_cleanup with /etc/init.d/<service> cgroup_cleanup or
# rc-service <service> cgroup_cleanup.
# rc_cgroup_cleanup="NO"

View File

@@ -1,13 +1,6 @@
#!/bin/sh #!/bin/sh
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
# Inform RC that we are in the background and hotplugged # Inform RC that we are in the background and hotplugged
IN_BACKGROUND=yes IN_BACKGROUND=yes

View File

@@ -1,13 +1,6 @@
#!@SHELL@ #!@SHELL@
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
# If $TERM is not set then assume default of @TERM@ # If $TERM is not set then assume default of @TERM@
# This gives us a nice colour boot :) # This gives us a nice colour boot :)

View File

@@ -1,13 +1,6 @@
#!@SHELL@ #!@SHELL@
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
# Handle interrupts # Handle interrupts
trap : SIGINT SIGQUIT trap : SIGINT SIGQUIT

269
guide.md
View File

@@ -1,269 +0,0 @@
# Purpose and description
OpenRC is an init system for Unixoid operating systems. It takes care of
startup and shutdown of the whole system, including services.
It evolved out of the Gentoo "Baselayout" package which was a custom pure-shell
startup solution. (This was both hard to maintain and debug, and not very
performant)
Most of the core parts are written in C99 for performance and flexibility
reasons, while everything else is posix sh.
The License is 2-clause BSD
Current size is about 10k LoC C, and about 4k LoC shell.
OpenRC is known to work on Linux, many BSDs (FreeBSD, OpenBSD, DragonFlyBSD at
least) and HURD.
Services are stateful (i.e. `start`; `start` will lead to "it's already started")
# Startup
Usually PID1 (aka. `init`) calls the OpenRC binary (`/sbin/openrc` by default).
(The default setup assumes sysvinit for this)
openrc scans the runlevels (default: `/etc/runlevels`) and builds a dependency
graph, then starts the needed service scripts, either serialized (default) or in
parallel.
When all the init scripts are started openrc terminates. There is no persistent
daemon. (Integration with tools like monit, runit or s6 can be done)
# Shutdown
On change to runlevel 0/6 or running `reboot`, `halt` etc., openrc stops all
services that are started and runs the services in the `shutdown` runlevel.
# Modifying Service Scripts
Any service can, at any time, be started/stopped/restarted by executing
`rc-service someservice start`, `rc-service someservice stop`, etc.
Another, less preferred method, is to run the service script directly,
e.g. `/etc/init.d/service start`, `/etc/init.d/service stop`, etc.
OpenRC will take care of dependencies, e.g starting apache will start network
first, and stopping network will stop apache first.
There is a special command `zap` that makes OpenRC 'forget' that a service is
started; this is mostly useful to reset a crashed service to stopped state
without invoking the (possibly broken) stop function of the service script.
Calling `openrc` without any arguments will try to reset all services so
that the current runlevel is satisfied; if you manually started apache it will be
stopped, and if squid died but is in the current runlevel it'll be restarted.
There is a `service` helper that emulates the syntax seen on e.g. older Redhat
and Ubuntu (`service nginx start` etc.)
# Runlevels
OpenRC has a concept of runlevels, similar to what sysvinit historically
offered. A runlevel is basically a collection of services that needs to be
started. Instead of random numbers they are named, and users can create their
own if needed. This allows, for example, to have a default runlevel with
"everything" enabled, and a "powersaving" runlevel where some services are
disabled.
The `rc-status` helper will print all currently active runlevels and the state
of init scripts in them:
```
# rc-status
* Caching service dependencies ... [ ok ]
Runlevel: default
modules [ started ]
lvm [ started ]
```
All runlevels are represented as folders in `/etc/runlevels/` with symlinks to
the actual init scripts.
Calling openrc with an argument (`openrc default`) will switch to that
runlevel; this will start and stop services as needed.
Managing runlevels is usually done through the `rc-update` helper, but could of
course be done by hand if desired.
e.g. `rc-update add nginx default` - add nginx to the default runlevel
Note: This will not auto-start nginx! You'd still have to trigger `rc` or run
the initscript by hand.
FIXME: Document stacked runlevels
The default startup uses the runlevels `boot`, `sysinit` and `default`, in that
order. Shutdown uses the `shutdown` runlevel.
# Syntax of Service Scripts
Service scripts are shell scripts. OpenRC aims at using only the standardized
POSIX sh subset for portability reasons. The default interpreter (build-time
toggle) is `/bin/sh`, so using for example mksh is not a problem.
OpenRC has been tested with busybox sh, ash, dash, bash, mksh, zsh and possibly
others. Using busybox sh has been difficult as it replaces commands with
builtins that don't offer the expected features.
The interpreter for initscripts is `#!/sbin/openrc-run`.
Not using this interpreter will break the use of dependencies and is not
supported. (iow: if you insist on using `#!/bin/sh` you're on your own)
A `depend` function declares the dependencies of this service script.
All scripts must have start/stop/status functions, but defaults are provided.
Extra functions can be added easily:
```
extra_commands="checkconfig"
checkconfig() {
doSomething
}
```
This exports the checkconfig function so that `/etc/init.d/someservice
checkconfig` will be available, and it "just" runs this function.
While commands defined in `extra_commands` are always available, commands
defined in `extra_started_commands` will only work when the service is started
and those defined in `extra_stopped_commands` will only work when the service is
stopped. This can be used for implementing graceful reload and similar
behaviour.
Adding a restart function will not work, this is a design decision within
OpenRC. Since there may be dependencies involved (e.g. network -> apache) a
restart function is in general not going to work.
restart is internally mapped to `stop()` + `start()` (plus handling dependencies).
If a service needs to behave differently when it is being restarted vs
started or stopped, it should test the `$RC_CMD` variable, for example:
```
[ "$RC_CMD" = restart ] && do_something
```
# The Depend Function
This function declares the dependencies for a service script. This
determines the order the service scripts start.
```
depend() {
need net
use dns logger netmount
want coolservice
}
```
`need` declares a hard dependency - net always needs to be started before this
service does
`use` is a soft dependency - if dns, logger or netmount is in this runlevel
start it before, but we don't care if it's not in this runlevel.
`want` is between need and use - try to start coolservice if it is
installed on the system, regardless of whether it is in the
runlevel, but we don't care if it starts.
`before` declares that we need to be started before another service
`after` declares that we need to be started after another service, without
creating a dependency (so on calling stop the two are independent)
`provide` allows multiple implementations to provide one service type, e.g.:
`provide cron` is set in all cron-daemons, so any one of them started
satisfies a cron dependency
`keyword` allows platform-specific overrides, e.g. `keyword -lxc` makes this
service script a noop in lxc containers. Useful for things like keymaps,
module loading etc. that are either platform-specific or not available
in containers/virtualization/...
FIXME: Anything missing in this list?
# The Default Functions
All service scripts are assumed to have the following functions:
```
start()
stop()
status()
```
There are default implementations in `lib/rc/sh/openrc-run.sh` - this allows very
compact service scripts. These functions can be overridden per service script as
needed.
The default functions assume the following variables to be set in the service
script:
```
command=
command_args=
pidfile=
``
Thus the 'smallest' service scripts can be half a dozen lines long
# The Magic of `conf.d`
Most service scripts need default values. It would be fragile to
explicitly source some arbitrary files. By convention `openrc-run` will source
the matching file in `/etc/conf.d/` for any script in `/etc/init.d/`
This allows you to set random startup-related things easily. Example:
```
conf.d/foo:
START_OPTS="--extraparameter sausage"
init.d/foo:
start() {
/usr/sbin/foo-daemon ${STARTOPTS}
}
```
The big advantage of this split is that most of the time editing of the init
script can be avoided.
# Start-Stop-Daemon
OpenRC has its own modified version of s-s-d, which is historically related and
mostly syntax-compatible to Debian's s-s-d, but has been rewritten from scratch.
It helps with starting daemons, backgrounding, creating PID files and many
other convenience functions related to managing daemons.
# `/etc/rc.conf`
This file manages the default configuration for OpenRC, and it has examples of
per-service-script variables.
Among these are `rc_parallel` (for parallelized startup), `rc_log` (logs all boot
messages to a file), and a few others.
# ulimit and CGroups
Setting `ulimit` and `nice` values per service can be done through the `rc_ulimit`
variable.
Under Linux, OpenRC can optionally use CGroups for process management.
By default each service script's processes are migrated to their own CGroup.
By changing certain values in the `conf.d` file limits can be enforced per
service. It is easy to find orphan processes of a service that persist after
`stop()`, but by default these will NOT be terminated.
To change this add `rc_cgroup_cleanup="yes"` in the `conf.d` files for services
where you desire this functionality.
# Caching
For performance reasons OpenRC keeps a cache of pre-parsed initscript metadata
(e.g. `depend`). The default location for this is `/${RC_SVCDIR}/cache`.
The cache uses `mtime` to check for file staleness. Should any service script
change it'll re-source the relevant files and update the cache
# Convenience functions
OpenRC has wrappers for many common output tasks in libeinfo.
This allows to print colour-coded status notices and other things.
To make the output consistent the bundled initscripts all use ebegin/eend to
print nice messages.

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=@PKG_PREFIX@/sbin/avahi-dnsconfd command=@PKG_PREFIX@/sbin/avahi-dnsconfd
command_args="$avahi_dnsconfd_args -D" command_args="$avahi_dnsconfd_args -D"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=@PKG_PREFIX@/sbin/avahi-daemon command=@PKG_PREFIX@/sbin/avahi-daemon
command_args="$avahid_args -D" command_args="$avahid_args -D"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=@PKG_PREFIX@/bin/dbus-daemon command=@PKG_PREFIX@/bin/dbus-daemon
pidfile=@VARBASE@/run/dbus/pid pidfile=@VARBASE@/run/dbus/pid

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/sbin/dhcpcd command=/sbin/dhcpcd
pidfile=/var/run/dhcpcd.pid pidfile=/var/run/dhcpcd.pid

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=@PKG_PREFIX@/sbin/dnsmasq command=@PKG_PREFIX@/sbin/dnsmasq
command_args=$dnsmasq_args command_args=$dnsmasq_args

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=@PKG_PREFIX@/sbin/hald command=@PKG_PREFIX@/sbin/hald
pidfile=@VARBASE@/run/hald/hald.pid pidfile=@VARBASE@/run/hald/hald.pid

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/sbin/named command=/usr/sbin/named
command_args=$named_args command_args=$named_args

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
: ${ntpd_config:=/etc/ntp.conf} : ${ntpd_config:=/etc/ntp.conf}
: ${ntpd_drift:=/var/db/ntpd.drift} : ${ntpd_drift:=/var/db/ntpd.drift}

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
vpn=${RC_SVCNAME#*.} vpn=${RC_SVCNAME#*.}
name="OpenVPN" name="OpenVPN"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=@PKG_PREFIX@/sbin/polkitd command=@PKG_PREFIX@/sbin/polkitd
pidfile=@VARBASE@/run/polkitd/polkitd.pid pidfile=@VARBASE@/run/polkitd/polkitd.pid

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/sbin/sshd command=/usr/sbin/sshd
command_args=$sshd_args command_args=$sshd_args

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/sbin/wpa_supplicant command=/usr/sbin/wpa_supplicant
: ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf} : ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf}

6
init.d/.gitignore vendored
View File

@@ -1,5 +1,3 @@
binfmt
modules-load
bootmisc bootmisc
fsck fsck
hostname hostname
@@ -12,6 +10,7 @@ network
root root
savecache savecache
swap swap
swapfiles
sysctl sysctl
urandom urandom
devfs devfs
@@ -23,11 +22,9 @@ killprocs
modules modules
mount-ro mount-ro
mtab mtab
net-online
numlock numlock
osclock osclock
procfs procfs
s6-svscan
staticroute staticroute
sysfs sysfs
devdb devdb
@@ -37,7 +34,6 @@ pf
rarpd rarpd
rc-enabled rc-enabled
rpcbind rpcbind
runsvdir
savecore savecore
swap-blk swap-blk
swclock swclock

View File

@@ -2,8 +2,8 @@ include ../mk/net.mk
DIR= ${INITDIR} DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \ SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \
netmount.in osclock.in root.in savecache.in swap.in tmpfiles.setup.in \ netmount.in osclock.in root.in savecache.in swap.in swapfiles.in \
swclock.in sysctl.in runsvdir.in urandom.in s6-svscan.in ${SRCS-${OS}} tmpfiles.setup.in swclock.in sysctl.in urandom.in s6-svscan.in ${SRCS-${OS}}
BIN= ${OBJS} BIN= ${OBJS}
# Are we installing our network scripts? # Are we installing our network scripts?
@@ -15,15 +15,15 @@ MK= ../mk
include ${MK}/os.mk include ${MK}/os.mk
# Generic BSD scripts # Generic BSD scripts
SRCS-FreeBSD= hostid.in modules.in moused.in newsyslog.in pf.in rarpd.in \ SRCS-FreeBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rc-enabled.in rpcbind.in savecore.in syslogd.in rpcbind.in savecore.in syslogd.in
# These are FreeBSD specific # These are FreeBSD specific
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \ SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \
modules.in modules-load.in mixer.in nscd.in powerd.in syscons.in mixer.in nscd.in powerd.in syscons.in
SRCS-Linux= binfmt.in devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \ SRCS-Linux= binfmt.in devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
killprocs.in modules.in modules-load.in mount-ro.in mtab.in numlock.in \ killprocs.in modules.in mount-ro.in mtab.in numlock.in \
procfs.in net-online.in sysfs.in termencoding.in tmpfiles.dev.in procfs.in sysfs.in termencoding.in tmpfiles.dev.in
# Generic BSD scripts # Generic BSD scripts
SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \ SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
@@ -31,6 +31,9 @@ SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
# These are NetBSD specific # These are NetBSD specific
SRCS-NetBSD+= devdb.in swap-blk.in ttys.in wscons.in SRCS-NetBSD+= devdb.in swap-blk.in ttys.in wscons.in
%.in: %${SFX}
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@
include ${MK}/scripts.mk include ${MK}/scripts.mk
_installafter_: realinstall _installafter_: realinstall

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
extra_commands="save" extra_commands="save"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2015 The OpenRC Authors. # Copyright 2015 William Hubbs <w.d.hubbs@gmail.com>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Register misc binary format handlers" description="Register misc binary format handlers"
@@ -15,7 +8,7 @@ depend()
{ {
after procfs after procfs
use modules devfs use modules devfs
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver keyword -openvz -prefix -systemd-nspawn -vserver -lxc
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
depend() depend()
{ {
@@ -223,9 +216,6 @@ start()
case "$RC_SYS" in case "$RC_SYS" in
VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;; VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;;
*) *)
if yesno ${previous_dmesg:-no}; then
mv /var/log/dmesg /var/log/dmesg.old
fi
dmesg > /var/log/dmesg dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg chmod 640 /var/log/dmesg
;; ;;

View File

@@ -1,21 +1,14 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Sets a font for the consoles." description="Sets a font for the consoles."
depend() depend()
{ {
need localmount termencoding need localmount termencoding
after hotplug bootmisc modules after hotplug bootmisc
keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu keyword -openvz -prefix -systemd-nspawn -uml -vserver -xenu -lxc
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/sbin/devd command=/sbin/devd
command_args=$devd_args command_args=$devd_args

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2008-2015 The OpenRC Authors. # Copyright (c) 2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Creates the dev database" description="Creates the dev database"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Set up the /dev directory" description="Set up the /dev directory"
@@ -15,7 +8,7 @@ depend()
{ {
provide dev-mount provide dev-mount
before dev before dev
keyword -docker -lxc -prefix -systemd-nspawn -vserver keyword -prefix -systemd-nspawn -vserver -lxc
} }
mount_dev() mount_dev()

View File

@@ -1,20 +1,13 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Set the dmesg level for a cleaner boot" description="Set the dmesg level for a cleaner boot"
depend() depend()
{ {
before dev modules before dev modules
keyword -docker -lxc -prefix -systemd-nspawn -vserver keyword -lxc -prefix -systemd-nspawn -vserver
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Configures a specific kernel dump device." description="Configures a specific kernel dump device."

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Check and repair filesystems according to /etc/fstab" description="Check and repair filesystems according to /etc/fstab"
_IFS=" _IFS="
@@ -16,11 +9,11 @@ _IFS="
depend() depend()
{ {
use dev clock modules use dev clock modules
keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -timeout -vserver -uml keyword -jail -openvz -prefix -systemd-nspawn -timeout -vserver -lxc -uml
} }
_abort() { _abort() {
yesno ${fsck_abort_on_errors:-yes} && rc-abort rc-abort
return 1 return 1
} }

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
extra_commands="reset" extra_commands="reset"
: ${hostid_file:=/etc/hostid} : ${hostid_file:=/etc/hostid}

View File

@@ -1,36 +1,19 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Sets the hostname of the machine." description="Sets the hostname of the machine."
depend() { depend() {
keyword -docker -lxc -prefix -systemd-nspawn keyword -prefix -systemd-nspawn -lxc
} }
start() start()
{ {
local h source x # HOSTNAME variable used to be defined in caps in conf.d/hostname.
if [ -s @SYSCONFDIR@/hostname ] && [ -r @SYSCONFDIR@/hostname ]; then # It is also a magic variable in bash.
read h x <@SYSCONFDIR@/hostname hostname=${hostname-${HOSTNAME-localhost}} # checkbashisms: false positive
source=" from @SYSCONFDIR@/hostname" ebegin "Setting hostname to $hostname"
else hostname "$hostname"
# HOSTNAME variable used to be defined in caps in conf.d/hostname.
# It is also a magic variable in bash.
h=${hostname-${HOSTNAME}} # checkbashisms: false positive
fi
if [ -z "$h" ]; then
einfo "Using default system hostname"
return 0
fi
ebegin "Setting hostname to $h $source"
hostname "$h"
eend $? "Failed to set the hostname" eend $? "Failed to set the hostname"
} }

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
extra_commands="save show" extra_commands="save show"
@@ -30,13 +23,12 @@ fi
depend() depend()
{ {
provide clock provide clock
want modules
if yesno $clock_adjfile; then if yesno $clock_adjfile; then
use root use root
else else
before * before *
fi fi
keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu keyword -openvz -prefix -systemd-nspawn -uml -vserver -xenu -lxc
} }
setupopts() setupopts()
@@ -70,28 +62,9 @@ _hwclock()
return 1 return 1
} }
get_noadjfile()
{
if ! yesno $clock_adjfile; then
# Some implementations don't handle adjustments
if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
echo --noadjfile
fi
fi
}
rtc_exists()
{
local rtc=
for rtc in /dev/rtc /dev/rtc[0-9]*; do
[ -e "$rtc" ] && break
done
[ -e "$rtc" ]
}
start() start()
{ {
local retval=0 errstr="" modname local retval=0 errstr=""
setupopts setupopts
if [ -z "$utc_cmd" ]; then if [ -z "$utc_cmd" ]; then
@@ -101,27 +74,26 @@ start()
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
if ! rtc_exists; then local rtc=
for x in rtc-cmos rtc genrtc; do for rtc in /dev/rtc /dev/rtc[0-9]*; do
modprobe -q $x && rtc_exists && modname="$x" && break [ -e "$rtc" ] && break
done done
[ -n "$modname" ] && if [ ! -e "${rtc}" ]; then
ewarn "The $modname module needs to be configured in" \ modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc
"@SYSCONFDIR@/conf.d/modules or built in."
fi fi
fi fi
# Always set the kernel's time zone. # Always set the kernel's time zone.
_hwclock --systz $utc_cmd $(get_noadjfile) $clock_args _hwclock --systz $utc_cmd $clock_args
: $(( retval += $? )) : $(( retval += $? ))
if [ -e /etc/adjtime ] && yesno $clock_adjfile; then if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
_hwclock --adjust $utc_cmd $(get_noadjfile) _hwclock --adjust $utc_cmd
: $(( retval += $? )) : $(( retval += $? ))
fi fi
if yesno ${clock_hctosys:-YES}; then if yesno ${clock_hctosys:-YES}; then
_hwclock --hctosys $utc_cmd $(get_noadjfile) $clock_args _hwclock --hctosys $utc_cmd $clock_args
: $(( retval += $? )) : $(( retval += $? ))
fi fi
@@ -143,7 +115,14 @@ stop()
ebegin "Setting hardware clock using the system clock" "[$utc]" ebegin "Setting hardware clock using the system clock" "[$utc]"
_hwclock --systohc $utc_cmd $(get_noadjfile) $clock_args if ! yesno $clock_adjfile; then
# Some implementations don't handle adjustments
if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
utc_cmd="$utc_cmd --noadjfile"
fi
fi
_hwclock --systohc $utc_cmd $clock_args
retval=$? retval=$?
eend $retval "Failed to sync clocks" eend $retval "Failed to sync clocks"
@@ -158,5 +137,5 @@ save()
show() show()
{ {
setupopts setupopts
hwclock --show "$utc_cmd" $(get_noadjfile) $clock_args hwclock --show "$utc_cmd" $clock_args
} }

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
# 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

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Applies a keymap for the consoles." description="Applies a keymap for the consoles."
@@ -15,7 +8,7 @@ depend()
{ {
need localmount termencoding need localmount termencoding
after bootmisc after bootmisc
keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu keyword -openvz -prefix -systemd-nspawn -uml -vserver -xenu -lxc
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Kill all processes so we can unmount disks cleanly." description="Kill all processes so we can unmount disks cleanly."
@@ -20,8 +13,10 @@ start()
{ {
ebegin "Terminating remaining processes" ebegin "Terminating remaining processes"
killall5 -15 ${killall5_opts} killall5 -15 ${killall5_opts}
sleep 1
eend 0 eend 0
ebegin "Killing remaining processes" ebegin "Killing remaining processes"
killall5 -9 ${killall5_opts} killall5 -9 ${killall5_opts}
sleep 1
eend 0 eend 0
} }

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Executes user programs in @SYSCONFDIR@/local.d" description="Executes user programs in @SYSCONFDIR@/local.d"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Mounts disks and swap according to /etc/fstab." description="Mounts disks and swap according to /etc/fstab."
@@ -16,13 +9,13 @@ depend()
need fsck need fsck
use lvm modules mtab use lvm modules mtab
after lvm modules after lvm modules
keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver keyword -jail -prefix -systemd-nspawn -vserver -lxc
} }
start() start()
{ {
# Mount local filesystems in /etc/fstab. # Mount local filesystems in /etc/fstab.
local critical= types="noproc" x= no_netdev= rc= local types="noproc" x= no_netdev= rc=
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list $extra_net_fs_list; do
types="${types},no${x}" types="${types},no${x}"
done done
@@ -37,17 +30,8 @@ start()
mount -at "$types" $no_netdev mount -at "$types" $no_netdev
eend $? "Some local filesystem failed to mount" eend $? "Some local filesystem failed to mount"
rc=$? rc=$?
if [ -z "$critical_mounts" ]; then if [ "$RC_UNAME" != Linux ]; then
rc=0 rc=0
else
for x in ${critical_mounts}; do
fstabinfo -q $x || continue
if ! mountinfo -q $x; then
critical=x
eerror "Failed to mount $x"
fi
done
[ -z "$critical" ] && rc=0
fi fi
return $rc return $rc
} }
@@ -99,8 +83,8 @@ stop()
aufs_branch=$(sed 's/=.*//g' $x) aufs_branch=$(sed 's/=.*//g' $x)
eindent eindent
if ! mount -o "remount,del:$aufs_branch" "$aufs_mount_point" > /dev/null 2>&1; then if ! mount -o "remount,del:$aufs_branch" "$aufs_mount_point" > /dev/null 2>&1; then
ewarn "Failed to remove branch $aufs_branch from aufs" \ ewarn "Failed to remove branch $aufs_branch from aufs \
"$aufs_mount_point" $aufs_mount_point"
fi fi
eoutdent eoutdent
sync sync

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2013-2015 The OpenRC Authors. # Copyright (c) 2013 William Hubbs <w.d.hubbs@gmail.com>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Configures the loopback interface." description="Configures the loopback interface."
@@ -35,3 +28,8 @@ start()
fi fi
eend $? eend $?
} }
stop()
{
return 0
}

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
extra_commands="restore" extra_commands="restore"

View File

@@ -1,72 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2016 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Loads a list of modules from systemd-compatible locations."
depend()
{
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
}
find_modfiles()
{
local dirs="/usr/lib/modules-load.d /run/modules-load.d /etc/modules-load.d"
local basenames files fn x y
for x in $dirs; do
[ ! -d $x ] && continue
for y in $x/*.conf; do
[ -f $y ] && basenames="${basenames}\n${y##*/}"
done
done
basenames=$(printf "$basenames" | sort -u)
for x in $basenames; do
for y in $dirs; do
[ -r $y/$x ] &&
fn=$y/$x
done
files="$files $fn"
done
echo $files
}
load_modules()
{
local file m modules rc x
file=$1
[ -z "$file" ] && return 0
while read m x; do
case $m in
\;*) continue ;;
\#*) continue ;;
*) modules="$modules $m"
;;
esac
done < $file
for x in $modules; do
ebegin "Loading module $x"
case "$RC_UNAME" in
FreeBSD) kldload "$x"; rc=$? ;;
Linux) modprobe --use-blacklist -q "$x"; rc=$? ;;
*) ;;
esac
eend $rc "Failed to load $x"
done
}
start()
{
local x
files=$(find_modfiles)
for x in $files; do
load_modules $x
done
return 0
}

View File

@@ -1,35 +1,16 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Loads a user defined list of kernel modules." description="Loads a user defined list of kernel modules."
depend() depend()
{ {
use isapnp use isapnp
want modules-load keyword -openvz -prefix -systemd-nspawn -vserver -lxc
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
} }
FreeBSD_modules() start()
{
local cnt=0 x
for x in $modules; do
ebegin "Loading module $x"
kldload "$x"
eend $? "Failed to load $x" && : $(( cnt += 1 ))
done
einfo "Autoloaded $cnt module(s)"
}
Linux_modules()
{ {
# Should not fail if kernel do not have module # Should not fail if kernel do not have module
# support compiled in ... # support compiled in ...
@@ -75,17 +56,8 @@ Linux_modules()
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 --use-blacklist -q "$mpargs" "$x" "$args" eval modprobe -q "$mpargs" "$x" "$args"
eend $? "Failed to load $x" && : $(( cnt += 1 )) eend $? "Failed to load $x" && : $(( cnt += 1 ))
done done
einfo "Autoloaded $cnt module(s)" einfo "Autoloaded $cnt module(s)"
} }
start()
{
case "$RC_UNAME" in
FreeBSD|Linux) ${RC_UNAME}_modules ;;
*) ;;
esac
return 0
}

View File

@@ -1,20 +1,13 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Re-mount filesytems read-only for a clean reboot." description="Re-mount filesytems read-only for a clean reboot."
depend() depend()
{ {
need killprocs savecache need killprocs savecache
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver keyword -openvz -prefix -systemd-nspawn -vserver -lxc
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
mouse=${RC_SVCNAME##*.} mouse=${RC_SVCNAME##*.}
if [ -n "$mouse" -a "$mouse" != "moused" ]; then if [ -n "$mouse" -a "$mouse" != "moused" ]; then

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Update /etc/mtab to match what the kernel knows about" description="Update /etc/mtab to match what the kernel knows about"

View File

@@ -1,76 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Delays until the network is online or a specific timeout"
depend()
{
after modules
need sysfs
keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver
}
get_interfaces()
{
local ifname iftype
for ifname in /sys/class/net/*; do
read iftype < ${ifname}/type
[ "$iftype" = "1" ] && printf "%s " ${ifname##*/}
done
}
get_default_gateway()
{
local cmd gateway
if command -v ip > /dev/null 2>&1; then
cmd="ip route show"
else
cmd=route
fi
set -- $($cmd | grep default)
[ "$2" != via ] && gateway="$2" || gateway="$3"
printf "%s" $gateway
}
start ()
{
local carriers configured dev gateway ifcount infinite interfaces
local rc state timeout x
ebegin "Checking to see if the network is online"
rc=0
interfaces=${interfaces:-$(get_interfaces)}
timeout=${timeout:-120}
[ $timeout -eq 0 ] && infinite=true || infinite=false
while $infinite || [ $timeout -gt 0 ]; do
carriers=0
configured=0
ifcount=0
for dev in ${interfaces}; do
: $((ifcount += 1))
read x < /sys/class/net/$dev/carrier
[ $x -eq 1 ] && : $((carriers += 1))
read x < /sys/class/net/$dev/operstate
[ "$x" = up ] && : $((configured += 1))
done
[ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break
sleep 1
: $((timeout -= 1))
done
! $infinite && [ $timeout -eq 0 ] && rc=1
if [ $rc -eq 0 ] && yesno ${ping_default_gateway:-no}; then
gateway="$(get_default_gateway)"
if [ -n "$gateway" ] && ! ping -c 1 $gateway > /dev/null 2>&1; then
rc=1
fi
fi
eend $rc "The network is offline"
}

View File

@@ -1,30 +1,15 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Mounts network shares according to /etc/fstab." description="Mounts network shares according to /etc/fstab."
depend() depend()
{ {
local opts mywant="" config /etc/fstab
for opts in $(fstabinfo -o -t nfs,nfs4); do use afc-client amd nfsclient autofs openvpn
case $opts in
noauto) ;;
*) mywant="$mywant nfsclient"; break ;;
esac
done
config /etc/fstab
want $mywant
use afc-client amd openvpn
use dns use dns
keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver keyword -jail -prefix -systemd-nspawn -vserver -lxc
} }
start() start()
@@ -37,22 +22,13 @@ start()
ebegin "Mounting network filesystems" ebegin "Mounting network filesystems"
mount -at $fs mount -at $fs
rc=$? rc=$?
if [ "$RC_UNAME" = Linux ] && [ $rc = 0 ]; then if [ "$RC_UNAME" = Linux ]; then
mount -a -O _netdev mount -a -O _netdev
rc=$? rc=$?
fi fi
ewend $rc "Could not mount all network filesystems" ewend $rc "Could not mount all network filesystems"
if [ -z "$critical_mounts" ]; then if [ "$RC_UNAME" != Linux ]; then
rc=0 rc=0
else
for x in ${critical_mounts}; do
fstabinfo -q $x || continue
if ! mountinfo -q $x; then
critical=x
eerror "Failed to mount $x"
fi
done
[ -z "$critical" ] && rc=0
fi fi
return $rc return $rc
} }
@@ -81,7 +57,7 @@ stop()
retval=$? retval=$?
eoutdent eoutdent
if [ "$RC_UNAME" = Linux ] && [ $retval = 0 ]; then if [ "$RC_UNAME" = Linux ]; then
umount -a -O _netdev umount -a -O _netdev
retval=$? retval=$?
fi fi

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2009-2015 The OpenRC Authors. # Copyright (c) 2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
# This script was inspired by the equivalent rc.d network from NetBSD. # This script was inspired by the equivalent rc.d network from NetBSD.

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
required_files="/etc/newsyslog.conf" required_files="/etc/newsyslog.conf"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/sbin/nscd command=/usr/sbin/nscd
command_args=$nscd_args command_args=$nscd_args

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Turns numlock on for the consoles." description="Turns numlock on for the consoles."
@@ -16,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend() depend()
{ {
need localmount need localmount
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver keyword -openvz -prefix -systemd-nspawn -vserver -lxc
} }
_setleds() _setleds()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2014-2015 The OpenRC Authors. # Copyright (c) 2014 Ralph Sennhauser <sera@igentoo.org>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
# Can be used on OSs that take care of the clock. # Can be used on OSs that take care of the clock.

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
name="Packet Filter" name="Packet Filter"
: ${pf_conf:=${pf_rules:-/etc/pf.conf}} : ${pf_conf:=${pf_rules:-/etc/pf.conf}}

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/sbin/powerd command=/usr/sbin/powerd
command_args=$powerd_args command_args=$powerd_args

View File

@@ -1,34 +1,21 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Mounts misc filesystems in /proc." description="Mounts misc filesystems in /proc."
depend() depend()
{ {
use devfs use modules devfs
want modules
need localmount need localmount
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver keyword -openvz -prefix -systemd-nspawn -vserver -lxc
} }
start() start()
{ {
# Setup Kernel Support for miscellaneous Binary Formats # Setup Kernel Support for miscellaneous Binary Formats
if [ -d /proc/sys/fs/binfmt_misc ] && if [ -d /proc/sys/fs/binfmt_misc -a ! -e /proc/sys/fs/binfmt_misc/register ]; then
[ ! -e /proc/sys/fs/binfmt_misc/register ]; then modprobe -q binfmt-misc
if ! grep -qs binfmt_misc /proc/filesystems &&
modprobe -q binfmt-misc; then
ewarn "The binfmt-misc module needs to be configured in" \
"@SYSCONFDIR@/conf.d/modules or built in."
fi
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,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/sbin/rarpd command=/usr/sbin/rarpd
command_args="-f $rarpd_args" command_args="-f $rarpd_args"

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
depend() depend()
{ {

View File

@@ -1,20 +1,13 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Mount the root fs read/write" description="Mount the root fs read/write"
depend() depend()
{ {
need fsck need fsck
keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -vserver keyword -jail -openvz -prefix -systemd-nspawn -vserver -lxc
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/sbin/rpcbind command=/usr/sbin/rpcbind
command_args=$rpcbind_args command_args=$rpcbind_args

View File

@@ -1,20 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2016 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/usr/bin/runsvdir
command_background=yes
pidfile=/var/run/runsvdir.pid
command_args="-P $RC_SVCDIR/sv 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'"
start_pre()
{
checkpath -m 0755 -o root:root -d ${RC_SVCDIR}/sv
}

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2015 The OpenRC Authors. # Copyright (C) 2015 William Hubbs <w.d.hubbs@gmail.com>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
command=/bin/s6-svscan command=/bin/s6-svscan
command_args="${RC_SVCDIR}"/s6-scan command_args="${RC_SVCDIR}"/s6-scan

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Saves the caches OpenRC uses to non volatile storage" description="Saves the caches OpenRC uses to non volatile storage"
@@ -49,7 +42,7 @@ start()
fi fi
ebegin "Saving dependency cache" ebegin "Saving dependency cache"
local rc=0 save= local rc=0 save=
for x in shutdowntime softlevel rc.log; do for x in deptree depconfig shutdowntime softlevel nettree rc.log; do
[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x" [ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x"
done done
if [ -n "$save" ]; then if [ -n "$save" ]; then

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# See the Authors file at the top-level directory of this distribution and # Released under the 2-clause BSD license.
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Saves a kernel dump." description="Saves a kernel dump."

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