Compare commits

..

15 Commits

Author SHA1 Message Date
Steven Chamberlain
0853c110e5 Begin port to GNU/kFreeBSD
This is just a minimal port to get Debian up and running; the rest will
be done later.
2013-10-30 15:00:40 -05:00
William Hubbs
1a43ce11d0 bootmisc: do not run clean_run on VSERVER systems
X-Gentoo-Bug: 489370
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=489370
2013-10-28 15:40:47 -05:00
William Hubbs
46e504b403 loopback: do not run in a prefix or vserver
X-Gentoo-Bug: 489370
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=489370
2013-10-28 15:40:16 -05:00
William Hubbs
fc1f3d14f4 start 0.12.4 2013-10-28 15:39:19 -05:00
Alexander V Vershilov
b8a016aaba Add uml keyword to fsck service.
Fix relevant an issue mentioned by Toralf Förster.

X-Gentoo-Bug: 481096.
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=481096
2013-10-18 15:22:24 -05:00
William Hubbs
63f5256b59 start work on OpenRC-0.12.3 2013-10-18 15:19:52 -05:00
Daniel Robbins
c420f56856 FL-786: localmount: support filesystem mounting on openvz 2013-10-08 12:06:09 -05:00
Natanael Copa
5b0f323da9 librc: fix off-by-one bug
We need allocate space for both the added leading '-' and the trailing
'\0'.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
2013-10-08 12:06:09 -05:00
Natanael Copa
d86853538a librc: fix a read off-by-one bug
We should first check if we are within bounds and then read rather than
the opposite.

This makes valgrind happy.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
2013-10-08 12:06:09 -05:00
William Hubbs
f2c0e700c6 netmount: add -lxc keyword
Netmount should not run on lxc, thanks to Mark van Dijk <funtoo@internecto.net>.
2013-10-08 12:06:09 -05:00
William Hubbs
b1de9d7324 start-stop-daemon: fix do_stop calls
Several calls to do_stop were forcing the test parameter to be true,
which was causing extra output to the terminal, such as:

* Would send signal 0 to pid xxxxx

This should only happen if the --test command line option was used.

Conflicts:
	src/rc/start-stop-daemon.c
2013-10-08 12:06:09 -05:00
William Hubbs
5b4886d23e start-stop-daemon: fix eerorr calls in get_pid
The eerror calls in this function make it too verbose, so change them to
ewarnv() calls instead. This means that they will only print if the
--verbose option is used or EINFO_VERBOSE=yes is set in the environment.
2013-10-08 12:06:09 -05:00
William Hubbs
2a53efbc07 start work on OpenRC-0.12.2 2013-10-08 12:03:47 -05:00
William Hubbs
a530722f65 fix cgroup_cleanup function
The yesno test for rc_cgroup_cleanup belongs at the point where this
function is called from runscript, not in the function itself.

X-Gentoo-Bug: 486210
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=486210
2013-10-02 05:43:51 -05:00
William Hubbs
661e9cf002 start work on OpenRC 0.12.1 2013-10-02 05:40:18 -05:00
250 changed files with 4456 additions and 10348 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>

View File

@@ -1,29 +0,0 @@
# Using Busybox as your Default Shell with OpenRC
If you have/bin/sh linked to busybox, you need to be aware of several
incompatibilities between busybox's applets and the standalone
counterparts. Since it is possible to configure busybox to not include
these applets or to prefer the standalone counterparts, OpenRC does not
attempt to support the busybox applets.
For now, it is recommended that you disable the following busybox
configuration settings for best results with OpenRC.
CONFIG_START_STOP_DAEMON -- The start-stop-daemon applet is not compatible with
start-stop-daemon in OpenRC.
CONFIG_MOUNT -- The mount applet does not support the -O [no]_netdev options to
skip over or include network file systems when the -a option is present.
CONFIG_UMOUNT -- The umount applet does not support the -O option along with -a.
CONFIG_SWAPONOFF -- The swapon applet does not support the -e option
or recognize the nofail option in fstab.
CONFIG_SETFONT -- The setfont applet does not support the -u option from kbd.
CONFIG_BB_SYSCTL -- The sysctl applet does not support the --system command
line switch.
There is work to get most of these supported by busybox, so this file
will be updated as things change.

1207
ChangeLog

File diff suppressed because it is too large Load Diff

49
FEATURE-REMOVAL-SCHEDULE Normal file
View File

@@ -0,0 +1,49 @@
The following is a list of files and features that are going to be removed in
the source tree. Every entry should contain what exactly is going away, why it
is happening, and who is going to be doing the work. When the feature is
removed, it should also be removed from this file.
---------------------------
What: oldnet ADSL rp-pppoe mode
When: undecided
Why: Replaced by the oldnet PPP module
Who: Robin H. Johnson <robbat2@gentoo.org>
---------------------------
What: oldnet /etc/conf.d/wireless
When: undecided
Why: All configuration moved to /etc/conf.d/net
Who: Robin H. Johnson <robbat2@gentoo.org>
---------------------------
What: Service pause action
When: Removed already, compatbility warning in place.
Why: ...
Who:
---------------------------
What: Service --startas, --chuid , --oknodo
When: undecided
Why: Obsolete or replaced by other options.
--startas => use --name or --exec
--chuid => use --user
--oknodo => ignore return code instead
Who:
---------------------------

View File

@@ -1,78 +0,0 @@
# Features Scheduled for Removal
The following is a list of files and features that are going to be removed in
the source tree. Every entry should contain what exactly is going away, why it
is happening, and who is going to be doing the work. When the feature is
removed, it should also be removed from this file.
## Service pause action
When: 1.0
Why: The same affect can be obtained with the --nodeps option to stop.
Who:
## start-stop-daemon options --startas, --chuid , --oknodo
When: 1.0
Why: Obsolete or replaced by other options.
* --startas => use --name or --exec
* --chuid => use --user
* --oknodo => ignore return code instead
Who:
## runscript and rc symbolic links
When: 1.0
Why: Deprecated in favor of openrc-run and openrc due to naming
conflicts with other software.
Who:
## support for the opts variable in service scripts
When: 1.0
Why: Deprecated in favor of extra_commands, extra_started_commands
and extra_stopped_commands.
Who:
## support for local_start and local_stop
When: 1.0
Why: Deprecated in favor of executable scripts in @SYSCONFDIR@/local.d
Who:
## the mtab service script
When: force /etc/mtab to link to /proc/self/mounts in 1.0, remove
service in 2.0
Why: /etc/mtab should be a symbolic link to /proc/self/mounts on modern
Linux systems
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

@@ -1,62 +0,0 @@
# OpenRC History
This history of OpenRC was written by Daniel Robbins, Roy Marples, William
Hubbs and others.
The Gentoo modular init scripts were developed by Daniel Robbins for Gentoo
Linux 1.0_rc6 during most of 2001 and released in September 2001. After their
development, the dependency-based init script system was maintained by a
number of senior developers, starting with Azarah (Martin Schlemmer), with
migration to the new init system assisted by Woodchip (Donnie Davies) who
converted all ebuild init scripts to work with the new system. As Grant
Goodyear notes:
"My recollection is that one of woodchip's more impressive early feats
was the complete replacement of all of the init scripts in Portage
for Gentoo Linux 1.0_rc6. Through 1.0_rc5 Gentoo had used fairly
standard rc scripts modified from Stampede Linux, but for 1.0_rc6 Daniel
Robbins (drobbins) and Martin Schlemmer (azarah) had created a new
dependency-based init script system that is still used today. Within a
span of days Donny rewrote every single init script in the Portage tree
and committed new masked packages to await the release of 1.0_rc6. Thanks to
woodchip (and drobbins and azarah, of course) the
transition to the new init scripts was nearly painless." [1]
Roy Marples became a Gentoo/Linux developer in 2004 and wrote the modular
network scripts for the Gentoo baselayout package. Towards the end of 2005,
he became the primary maintainer for baselayout and the init scripts.
At the start of 2007, He announced the ongoing development of
baselayout-2, containing a rewritten core coded in C and allowing POSIX sh
init scripts instead of forcing the use of bash. By mid 2007, He had
re-implemented the Gentoo init script design created by Daniel Robbins,
using an entirely new code base. Alpha and pre-release baselayout-2
snapshots were added to Gentoo's Portage tree as an optional component.
Toward the end of 2007, Roy retired as a Gentoo developer.
Baselayout-2 was still in the pre stage, and aside from the gentoo-fbsd
users, it was masked. However, He desired to keep the baselayout-2
project moving forward as an independent project. The Gentoo Council
permitted Him to release OpenRC under the 2-clause BSD license,
managed by him as an external project.
Around mid-2010, Roy decided to no longer maintain OpenRC. At this
point, he transferred development back to Gentoo.
William Hubbs, and several other Gentoo developers, started working on
OpenRC around this point and brought OpenRC-0.8.x to Gentoo Linux's stable
tree in 2011.
In 2013 the OpenRC team became independent from Gentoo again and moved primary
development to github.
Daniel Robbins continues to maintain an independent, forked
version of OpenRC for Funtoo Linux, which includes a Funtoo-specific network
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

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,17 +1,8 @@
# 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}}}} include Makefile.inc
MK= ${TOP}/mk
include ${TOP}/Makefile.inc
SUBDIR= conf.d etc init.d local.d man scripts sh src sysctl.d SUBDIR= conf.d etc init.d local.d man scripts sh src sysctl.d
@@ -26,11 +17,12 @@ SUBDIR+= runlevels
INSTALLAFTER= _installafter INSTALLAFTER= _installafter
MK= mk
include ${MK}/sys.mk include ${MK}/sys.mk
include ${MK}/os.mk include ${MK}/os.mk
include ${MK}/subdir.mk include ${MK}/subdir.mk
include ${MK}/dist.mk include ${MK}/dist.mk
include ${MK}/gitver.mk include ${MK}/git.mk
_installafter: _installafter:
ifeq (${MKPREFIX},yes) ifeq (${MKPREFIX},yes)

View File

@@ -1,3 +1,3 @@
NAME= openrc NAME= openrc
VERSION= 0.23.2 VERSION= 0.12.4
PKG= ${NAME}-${VERSION} PKG= ${NAME}-${VERSION}

157
NEWS.md
View File

@@ -1,157 +0,0 @@
# OpenRC NEWS
This file will contain a list of notable changes for each release. Note
the information in this file is in reverse order.
## OpenRC-0.23
The tmpfiles.d processing code, which was part of previous versions of
OpenRC, has been separated into its own package [1]. If you need to
process systemd style tmpfiles.d files, please install this package.
[1] https://github.com/openrc/opentmpfiles
## 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
Modern Linux systems expect /etc/mtab to be a symbolic link to
/proc/self/mounts. Reasons for this change include support for mount
namespaces, which will not work if /etc/mtab is a file.
By default, the mtab service enforces this on each reboot.
If you find that this breaks your system in some way, please do the
following:
- Set mtab_is_file=yes in /etc/conf.d/mtab.
- Restart mtab. This will recreate the /etc/mtab file.
- Check for an issue on https://github.com/openrc/openrc/issues
explaining why you need /etc/mtab to be a file. If there isn't one,
please open one and explain in detail why you need this to be a file.
If there is one, please add your comments to it. Please give concrete
examples of why it is important that /etc/mtab be a file instead of a
symbolic link. Those comments will be taken into consideration for how
long to keep supporting mtab as a file or when the support can be
removed.
## OpenRC-0.18
The behaviour of localmount and netmount in this version is changing. In
the past, these services always started successfully. In this version,
they will be able to fail if file systems they mount fail to mount. If
you have file systems listed in fstab which should not be mounted at
boot time, make sure to add noauto to the mount options. If you have
file systems that you want to attempt to mount at boot time but failure
should be allowed, add nofail to the mount options for these file
systems in fstab.
## OpenRC-0.14
The binfmt service, which registers misc binary formats with the Linux
kernel, has been separated from the procfs service. This service will be
automatically added to the boot runlevel for new Linux installs. When
you upgrade, you will need to use rc-update to add it to your boot
runlevel.
The procfs service no longer automounts the deprecated usbfs and
usbdevfs file systems. Nothing should be using usbdevfs any longer, and
if you still need usbfs it can be added to fstab.
Related to the above change, the procfs service no longer attempts to
modprobe the usbcore module. If your device manager does not load it,
you will need to configure the modules service to do so.
The override order of binfmt.d and tmpfiles.d directories has been
changed to match systemd. Files in /run/binfmt.d and /run/tmpfiles.d
override their /usr/lib counterparts, and files in the /etc counterparts
override both /usr/lib and /run.
## OpenRC-0.13.2
A chroot variable has been added to the service script variables.
This fixes the support for running a service in a chroot.
This is documented in man 8 openrc-run.
The netmount service now mounts nfs file systems.
This change was made to correct a fix for an earlier bug.
## OpenRC-0.13
/sbin/rc was renamed to /sbin/openrc and /sbin/runscript was renamed to
/sbin/openrc-run due to naming conflicts with other software.
Backward compatible symbolic links are currently in place so your
system will keep working if you are using the old names; however, it is
strongly advised that you migrate to the new names because the symbolic
links will be removed in the future.
Warnings have been added to assist with this migration; however, due to the
level of noise they produce, they only appear in verbose mode in this release.
The devfs script now handles the initial mounting and setup of the
/dev directory. If /dev has already been mounted by the kernel or an
initramfs, devfs will remount /dev with the correct mount options
instead of mounting a second /dev over the existing mount point.
It attempts to mount /dev from fstab first if an entry exists there. If
it doesn't it attempts to mount devtmpfs if it is configured in the
kernel. If not, it attempts to mount tmpfs.
If none of these is available, an error message is displayed and static
/dev is assumed.
## OpenRC-0.12
The net.* scripts, originally from Gentoo Linux, have
been removed. If you need these scripts, look for a package called
netifrc, which is maintained by them.

92
README Normal file
View File

@@ -0,0 +1,92 @@
OpenRC README
Installation
------------
make install
Yup, that simple. Works with GNU make.
You may wish to tweak the installation with the below arguments
PROGLDFLAGS=-static
LIBNAME=lib64
DESTDIR=/tmp/openrc-image
MKNET=no
MKPAM=pam
MKPREFIX=yes
MKPKGCONFIG=no
MKSELINUX=yes
MKSTATICLIBS=no
MKTERMCAP=ncurses
MKTERMCAP=termcap
MKTOOLS=yes
PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local
PREFIX=/usr/local
We don't support building a static OpenRC with PAM.
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.
You can also brand OpenRC if you so wish like so
BRANDING=\"Gentoo/$(uname -s)\"
PKG_PREFIX should be set to where packages install to by default.
LOCAL_PREFIX should be set when to where user maintained packages are.
Only set LOCAL_PREFIX if different from PKG_PREFIX.
PREFIX should be set when OpenRC is not installed to /.
If any of the following files exist then we do not overwrite them
/etc/devd.conf
/etc/rc
/etc/rc.shutdown
/etc/conf.d/*
rc and rc.shutdown are the hooks from the BSD init into OpenRC.
devd.conf is modified from FreeBSD to call /etc/rc.devd which is a generic
hook into OpenRC.
inittab is the same, but for SysVInit as used by most Linux distributions.
This can be found in the support folder.
Obviously, if you're installing this onto a system that does not use OpenRC
by default then you may wish to backup the above listed files, remove them
and then install so that the OS hooks into OpenRC.
init.d.misc is not installed by default as the scripts will need
tweaking on a per distro basis. They are also non essential to the operation
of the system.
As of OpenRC-0.12, the net.* scripts, originally from Gentoo Linux, have
been removed. If you need these scripts, look for a package called
netifrc, which is maintained by them.
Reporting Bugs
--------------
Since Gentoo Linux is hosting OpenRC development, Bugs should go to
the Gentoo Bugzilla:
http://bugs.gentoo.org/
They should be filed under the "Gentoo Hosted Projects" product and
the "openrc" component.
History - by Roy Marples
------------------------
I became a Gentoo/Linux developer in 2004 and wrote the modular network
scripts for the Gentoo baselayout package. baselayout is a collection of
bash scripts to bring up your computer and its services.
Then towards the end of 2005 I found myself as the primary maintainer
for baselayout.
At the start of 2007, baselayout-2 is announced to the world, re-writing the
core of baselayout in C and allowing POSIX sh init scripts instead of
forcing the use of bash. By Mid 2007 I have re-written everything, including
init scripts, and alpha and pre baselayout-2 snapshots where put into Gentoo.
Towards the end of 2007 I retired as a Gentoo developer for reasons I won't
go into here. baselayout-2 was still in the pre stage, and aside from the
fbsd users, it was masked everywhere. However, I also desired to keep the
baselayout-2 project alive, but outside of Gentoo and into other projects
such as FreeBSD.
As such, the Gentoo Council have allowed the creation of OpenRC under the
2 clause BSD license, managed by me as an external project.

28
README.busybox Normal file
View File

@@ -0,0 +1,28 @@
Using Busybox as your Default Shell
-----------------------------------
If you have/bin/sh linked to busybox, you need to be aware of several
incompatibilities between busybox's applets and the standalone
counterparts. Since it is possible to configure busybox to not include
these applets or to prefer the standalone counterparts, OpenRC does not
attempt to support the busybox applets.
All of these apply to busybox 1.20.2, which is the current version of
busybox as of this writing.
1. The start-stop-daemon applet is not compatible with start-stop-daemon
in OpenRC. Please make sure CONFIG_START_STOP_DAEMON is not set to y in
the configuration file you use to build busybox.
2. The -O option for the mount applet does not support the [no]_netdev
options from util-linux for handling network file systems.
3. The umount applet does not support the -O option from util-linux.
4. The swapon applet does not support the -e option from util-linux.
5. the setfont applet does not support the -u option from kbd.
There is work to get most of these supported by busybox, so this file
will be updated as things change.

View File

@@ -1,96 +0,0 @@
# OpenRC README
OpenRC is a dependency-based init system that works with the
system-provided init program, normally `/sbin/init`. Currently, it does
not have an init program of its own.
## Installation
OpenRC requires GNU make.
Once you have GNU Make installed, the default OpenRC installation can be
executed using this command:
make install
## Configuration
You may wish to configure the installation by passing one or more of the
below arguments to the make command
```
PROGLDFLAGS=-static
LIBNAME=lib64
DESTDIR=/tmp/openrc-image
MKNET=no
MKPAM=pam
MKPREFIX=yes
MKPKGCONFIG=no
MKSELINUX=yes
MKSTATICLIBS=no
MKTERMCAP=ncurses
MKTERMCAP=termcap
MKTOOLS=yes
PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local
PREFIX=/usr/local
BRANDING=\"Gentoo/$(uname -s)\"
```
## Notes
We don't support building a static OpenRC with PAM.
You may need to use `PROGLDFLAGS=-Wl,-Bstatic` on glibc instead of just `-static`.
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.
`LOCAL_PREFIX` should be set when to where user maintained packages are.
Only set `LOCAL_PREFIX` if different from `PKG_PREFIX`.
`PREFIX` should be set when OpenRC is not installed to /.
If any of the following files exist then we do not overwrite them
```
/etc/devd.conf
/etc/rc
/etc/rc.shutdown
/etc/conf.d/*
```
`rc` and `rc.shutdown` are the hooks from the BSD init into OpenRC.
`devd.conf` is modified from FreeBSD to call `/etc/rc.devd` which is a
generic hook into OpenRC.
`inittab` is the same, but for SysVInit as used by most Linux distributions.
This can be found in the support folder.
Obviously, if you're installing this onto a system that does not use
OpenRC by default then you may wish to backup the above listed files,
remove them and then install so that the OS hooks into OpenRC.
`init.d.misc` is not installed by default as the scripts will need
tweaking on a per distro basis. They are also non essential to the
operation of the system.
## Reporting Bugs
If you are using Gentoo Linux, bugs can be filed on their bugzilla under
the `gentoo hosted projects` product and the `openrc` component [1].
Otherwise, you can report issues on our github [2].
Better yet, if you can contribute code, please feel free to submit pull
requests [3].
## IRC Channel
We have an official irc channel, #openrc on freenode, feel free to join
us there.
[1] https://bugs.gentoo.org/
[2] https://github.com/openrc/openrc/issues
[3] https://github.com/openrc/openrc/pulls

View File

@@ -1,23 +1,23 @@
# OpenRC Style Guide
This is the openrc style manual. It governs the coding style of all code This is the openrc style manual. It governs the coding style of all code
in this repository. Follow it. Contact openrc@gentoo.org for any questions in this repository. Follow it. Contact openrc@gentoo.org for any questions
or fixes you might notice. or fixes you might notice.
## C CODE ##########
# C CODE #
##########
The BSD Kernel Normal Form (KNF) style is used [1]. Basically, it is like The BSD Kernel Normal Form (KNF) style is used:
K&R/LKML, but wrapped lines that are indented use 4 spaces. Here are the http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style
highlights. Basically, it's like K&R/LKML, but wrapped lines that are indented use 4 spaces.
- no trailing whitespace Highlights:
- indented code use tabs (not line wrapped) - no trailing whitespace
- cuddle the braces (except for functions) - indented code use tabs (not line wrapped)
- space after native statements and before paren (for/if/while/...) - cuddle the braces (except for functions)
- no space between function and paren - space after native statements and before paren (for/if/while/...)
- pointer asterisk cuddles the variable, not the type - no space between function and paren
- pointer asterisk cuddles the variable, not the type
```
void foo(int c) void foo(int c)
{ {
int ret = 0; int ret = 0;
@@ -32,15 +32,16 @@ void foo(int c)
return ret; return ret;
} }
```
## COMMIT MESSAGES ##################
# COMMIT MESSAGES #
##################
The following is an example of a correctly formatted git commit message The following is an example of a correctly formatted git commit message
for this repository. Most of this information came from this blog post for this repository. Most of this information came from this blog post
[2], so I would like to thank the author. [1], so I would like to thank the author.
``` ### cut here ###
Capitalized, short (50 chars or less) summary Capitalized, short (50 chars or less) summary
More detailed explanatory text, if necessary. Wrap it to about 72 More detailed explanatory text, if necessary. Wrap it to about 72
@@ -66,7 +67,7 @@ Further paragraphs come after blank lines.
Reported-by: User Name <email> Reported-by: User Name <email>
X-[Distro]-Bug: BugID X-[Distro]-Bug: BugID
X-[Distro]-Bug-URL: URL for the bug (on the distribution's web site typically) X-[Distro]-Bug-URL: URL for the bug (on the distribution's web site typically)
``` ### cut here ###
If you did not write the code and the patch does not include authorship If you did not write the code and the patch does not include authorship
information in a format git can use, please use the --author option of the information in a format git can use, please use the --author option of the
@@ -80,5 +81,5 @@ different from the author and committer.
*BSD. Also, [Distro] should be replaced with the name of the *BSD. Also, [Distro] should be replaced with the name of the
distribution, e.g. X-Gentoo-Bug. distribution, e.g. X-Gentoo-Bug.
[1] http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style [1] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[2] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

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

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

View File

@@ -1,20 +1,28 @@
include ../mk/net.mk include ../mk/net.mk
DIR= ${CONFDIR} DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount netmount swap urandom ${CONF-${OS}} CONF= bootmisc fsck hostname localmount netmount urandom tmpfiles \
${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 dmesg hwclock keymaps killprocs modules
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

@@ -1,8 +0,0 @@
# OpenRC will attempt each of the following in succession to mount /dev.
#
# 1. If there is an entry for /dev in fstab, it will be used.
# 2. If devtmpfs is defined in the kernel, it will be used.
# 3. If tmpfs is defined in the kernel, it will be used.
#
# Set this to yes if you do not want OpenRC to attempt to mount /dev.
# skip_mount_dev="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

@@ -7,8 +7,8 @@ clock="UTC"
# If you want the hwclock script to set the system time (software clock) # If you want the hwclock script to set the system time (software clock)
# to match the current hardware clock during bootup, leave this # to match the current hardware clock during bootup, leave this
# commented out. # commented out.
# However, you can set this to "NO" if you are running a modern kernel # However, you can set this to "NO" ifyou are running a modern kernel
# and using NTP to synchronize your system clock. # with CONFIG_RTC_HCTOSYS set to y and your hardware clock set to UTC.
#clock_hctosys="YES" #clock_hctosys="YES"
# If you do not want to set the hardware clock to the current system # If you do not want to set the hardware clock to the current system

View File

@@ -18,6 +18,6 @@ extended_keymaps=""
# For a list of valid sets, run `dumpkeys --help` # For a list of valid sets, run `dumpkeys --help`
dumpkeys_charset="" dumpkeys_charset=""
# Some fonts map AltGr-E to the currency symbol instead of the Euro. # Some fonts map AltGr-E to the currency symbol ¤ instead of the Euro
# To fix this, set to "yes" # To fix this, set to "yes"
fix_euro="NO" fix_euro="NO"

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,5 +0,0 @@
# This setting controls whether /etc/mtab is a file or symbolic link.
# Most of the time, you shouldn't touch this. However, if the default
# breaks your system in some way, please see the NEWS.md file that comes
# with OpenRC for the actions to take.
# mtab_is_file=no

View File

@@ -1,15 +0,0 @@
# The interfaces setting controls which interfaces the net-online
# service considers in deciding whether the network is active. The
# default is all interfaces that support ethernet.
#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"

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,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"

3
conf.d/tmpfiles Normal file
View File

@@ -0,0 +1,3 @@
# Extra options for tmpfiles.sh
#tmpfiles_opts="--verbose"
tmpfiles_opts=""

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} $^ > $@

View File

@@ -1,250 +0,0 @@
# Global OpenRC configuration settings
# Set to "YES" if you want the rc system to try and start services
# in parallel for a slight speed improvement. When running in parallel we
# prefix the service output with its name as the output will get
# jumbled up.
# WARNING: whilst we have improved parallel, it can still potentially lock
# the boot process. Don't file bugs about this unless you can supply
# patches that fix it without breaking other things!
#rc_parallel="NO"
# Set rc_interactive to "YES" and you'll be able to press the I key during
# boot so you can choose to start specific services. Set to "NO" to disable
# this feature. This feature is automatically disabled if rc_parallel is
# set to YES.
#rc_interactive="YES"
# If we need to drop to a shell, you can specify it here.
# If not specified we use $SHELL, otherwise the one specified in /etc/passwd,
# otherwise /bin/sh
# Linux users could specify /sbin/sulogin
#rc_shell=/bin/sh
# Do we allow any started service in the runlevel to satisfy the dependency
# or do we want all of them regardless of state? For example, if net.eth0
# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
# both will be started, but services that depend on 'net' will work if either
# one comes up. With rc_depend_strict="YES" we would require them both to
# come up.
#rc_depend_strict="YES"
# rc_hotplug controls which services we allow to be hotplugged.
# A hotplugged service is one started by a dynamic dev manager when a matching
# hardware device is found.
# Hotplugged services appear in the "hotplugged" runlevel.
# If rc_hotplug is set to any value, we compare the name of this service
# 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.*"
# This allows net.wlan and any service not matching net.* to be hotplugged.
# Example - rc_hotplug="!net.*"
# This allows services that do not match "net.*" to be hotplugged.
# rc_logger launches a logging daemon to log the entire rc process to
# /var/log/rc.log
# NOTE: Linux systems require the devfs service to be started before
# logging can take place and as such cannot log the sysinit runlevel.
#rc_logger="NO"
# Through rc_log_path you can specify a custom log file.
# The default value is: /var/log/rc.log
#rc_log_path="/var/log/rc.log"
# If you want verbose output for OpenRC, set this to yes. If you want
# verbose output for service foo only, set it to yes in /etc/conf.d/foo.
#rc_verbose=no
# By default we filter the environment for our running scripts. To allow other
# variables through, add them here. Use a * to allow all variables through.
#rc_env_allow="VAR1 VAR2"
# By default we assume that all daemons will start correctly.
# However, some do not - a classic example is that they fork and return 0 AND
# then child barfs on a configuration error. Or the daemon has a bug and the
# child crashes. You can set the number of milliseconds start-stop-daemon
# waits to check that the daemon is still running after starting here.
# The default is 0 - no checking.
#rc_start_wait=100
# rc_nostop is a list of services which will not stop when changing runlevels.
# This still allows the service itself to be stopped when called directly.
#rc_nostop=""
# rc will attempt to start crashed services by default.
# However, it will not stop them by default as that could bring down other
# critical services.
#rc_crashed_stop=NO
#rc_crashed_start=YES
# Set rc_nocolor to yes if you do not want colors displayed in OpenRC
# output.
#rc_nocolor=NO
##############################################################################
# MISC CONFIGURATION VARIABLES
# There variables are shared between many init scripts
# Set unicode to YES to turn on unicode support for keyboards and screens.
#unicode="NO"
# This is how long fuser should wait for a remote server to respond. The
# default is 60 seconds, but it can be adjusted here.
#rc_fuser_timeout=60
# Below is the default list of network fstypes.
#
# afs ceph cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
# nfs nfs4 ocfs2 shfs smbfs
#
# If you would like to add to this list, you can do so by adding your
# own fstypes to the following variable.
#extra_net_fs_list=""
##############################################################################
# SERVICE CONFIGURATION VARIABLES
# These variables are documented here, but should be configured in
# /etc/conf.d/foo for service foo and NOT enabled here unless you
# really want them to work on a global basis.
# If your service has characters in its name which are not legal in
# shell variable names and you configure the variables for it in this
# file, those characters should be replaced with underscores in the
# variable names as shown below.
# Some daemons are started and stopped via start-stop-daemon.
# We can set some things on a per service basis, like the nicelevel.
#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
# If you are using bash in POSIX mode for your shell, note that the
# ulimit command uses a block size of 512 bytes for the -c and -f
# options
#rc_ulimit="-u 30"
# It's possible to define extra dependencies for services like so
#rc_config="/etc/foo"
#rc_need="openvpn"
#rc_use="net.eth0"
#rc_after="clock"
#rc_before="local"
#rc_provide="!net"
# You can also enable the above commands here for each service. Below is an
# example for service foo.
#rc_foo_config="/etc/foo"
#rc_foo_need="openvpn"
#rc_foo_after="clock"
# Below is an example for service foo-bar. Note that the '-' is illegal
# in a shell variable name, so we convert it to an underscore.
# example for service foo-bar.
#rc_foo_bar_config="/etc/foo-bar"
#rc_foo_bar_need="openvpn"
#rc_foo_bar_after="clock"
# You can also remove dependencies.
# This is mainly used for saying which services do NOT 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"

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=""

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=""

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

@@ -0,0 +1,78 @@
##############################################################################
# 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
# "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 memory controller settings for this service.
#rc_cgroup_memory=""
# Set the net_prio controller settings for this service.
#rc_cgroup_net_prio=""
# 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=""

137
etc/rc.conf.in Normal file
View File

@@ -0,0 +1,137 @@
# Global OpenRC configuration settings
# Set to "YES" if you want the rc system to try and start services
# in parallel for a slight speed improvement. When running in parallel we
# prefix the service output with its name as the output will get
# jumbled up.
# WARNING: whilst we have improved parallel, it can still potentially lock
# the boot process. Don't file bugs about this unless you can supply
# patches that fix it without breaking other things!
#rc_parallel="NO"
# Set rc_interactive to "YES" and you'll be able to press the I key during
# boot so you can choose to start specific services. Set to "NO" to disable
# this feature. This feature is automatically disabled if rc_parallel is
# set to YES.
#rc_interactive="YES"
# If we need to drop to a shell, you can specify it here.
# If not specified we use $SHELL, otherwise the one specified in /etc/passwd,
# otherwise /bin/sh
# Linux users could specify /sbin/sulogin
#rc_shell=/bin/sh
# Do we allow any started service in the runlevel to satisfy the dependency
# or do we want all of them regardless of state? For example, if net.eth0
# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
# both will be started, but services that depend on 'net' will work if either
# one comes up. With rc_depend_strict="YES" we would require them both to
# come up.
#rc_depend_strict="YES"
# 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
# hardware device is found.
# This service is intrinsically included in the boot runlevel.
# To disable services, prefix with a !
# Example - rc_hotplug="net.wlan !net.*"
# This allows net.wlan and any service not matching net.* to be plugged.
# Example - rc_hotplug="*"
# This allows all services to be hotplugged
#rc_hotplug="*"
# rc_logger launches a logging daemon to log the entire rc process to
# /var/log/rc.log
# NOTE: Linux systems require the devfs service to be started before
# logging can take place and as such cannot log the sysinit runlevel.
#rc_logger="YES"
# Through rc_log_path you can specify a custom log file.
# The default value is: /var/log/rc.log
#rc_log_path="/var/log/rc.log"
# By default we filter the environment for our running scripts. To allow other
# variables through, add them here. Use a * to allow all variables through.
#rc_env_allow="VAR1 VAR2"
# By default we assume that all daemons will start correctly.
# However, some do not - a classic example is that they fork and return 0 AND
# then child barfs on a configuration error. Or the daemon has a bug and the
# child crashes. You can set the number of milliseconds start-stop-daemon
# waits to check that the daemon is still running after starting here.
# The default is 0 - no checking.
#rc_start_wait=100
# rc_nostop is a list of services which will not stop when changing runlevels.
# This still allows the service itself to be stopped when called directly.
#rc_nostop=""
# rc will attempt to start crashed services by default.
# However, it will not stop them by default as that could bring down other
# critical services.
#rc_crashed_stop=NO
#rc_crashed_start=YES
##############################################################################
# MISC CONFIGURATION VARIABLES
# There variables are shared between many init scripts
# Set unicode to YES to turn on unicode support for keyboards and screens.
#unicode="NO"
# This is how long fuser should wait for a remote server to respond. The
# default is 60 seconds, but it can be adjusted here.
#rc_fuser_timeout=60
# Below is the default list of network fstypes.
#
# afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
# nfs nfs4 ocfs2 shfs smbfs
#
# If you would like to add to this list, you can do so by adding your
# own fstypes to the following variable.
#extra_net_fs_list=""
##############################################################################
# SERVICE CONFIGURATION VARIABLES
# These variables are documented here, but should be configured in
# /etc/conf.d/foo for service foo and NOT enabled here unless you
# really want them to work on a global basis.
# If your service has characters in its name which are not legal in
# shell variable names and you configure the variables for it in this
# file, those characters should be replaced with underscores in the
# variable names as shown below.
# Some daemons are started and stopped via start-stop-daemon.
# We can set some things on a per service basis, like the nicelevel.
#SSD_NICELEVEL="-19"
# Pass ulimit parameters
#rc_ulimit="-u 30"
# It's possible to define extra dependencies for services like so
#rc_config="/etc/foo"
#rc_need="openvpn"
#rc_use="net.eth0"
#rc_after="clock"
#rc_before="local"
#rc_provide="!net"
# You can also enable the above commands here for each service. Below is an
# example for service foo.
#rc_foo_config="/etc/foo"
#rc_foo_need="openvpn"
#rc_foo_after="clock"
# Below is an example for service foo-bar. Note that the '-' is illegal
# in a shell variable name, so we convert it to an underscore.
# example for service foo-bar.
#rc_foo_bar_config="/etc/foo-bar"
#rc_foo_bar_need="openvpn"
#rc_foo_bar_after="clock"
# You can also remove dependencies.
# This is mainly used for saying which servies do NOT provide net.
#rc_net_tap0_provide="!net"

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 :)
@@ -17,9 +10,9 @@
trap : SIGINT trap : SIGINT
trap "echo 'Boot interrupted'; exit 1" SIGQUIT trap "echo 'Boot interrupted'; exit 1" SIGQUIT
/sbin/openrc sysinit || exit 1 /sbin/rc sysinit || exit 1
/sbin/openrc boot || exit 1 /sbin/rc boot || exit 1
/sbin/openrc default /sbin/rc default
# We don't actually care if rc default worked or not, we should exit 0 # We don't actually care if rc default worked or not, we should exit 0
# to allow logins # to allow logins

View File

@@ -1,24 +1,17 @@
#!@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
# Try and use stuff in /lib over anywhere else so we can shutdown # Try and use stuff in /lib over anywhere else so we can shutdown
# local mounts correctly. # local mounts correctly.
LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}" ; export LD_LIBRARY_PATH LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LDLIBRARY_PATH}" ; export LD_LIBRARY_PATH
# 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 :)
[ -z "$TERM" -o "$TERM" = "dumb" ] && TERM="@TERM@" && export TERM [ -z "$TERM" -o "$TERM" = "dumb" ] && TERM="@TERM@" && export TERM
action=${1:-shutdown} action=${1:-shutdown}
exec /sbin/openrc "${action}" exec /sbin/rc "${action}"

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@/runscript
# 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@/runscript
# 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@/runscript
# 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@/runscript
# 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@/runscript
# 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@/runscript
# 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@/runscript
# 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@/runscript
# 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@/runscript
# 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"
@@ -60,7 +53,7 @@ start_pre()
eend $? eend $?
fi fi
else else
if command -v kldload >/dev/null 2>&1; then if type kldload >/dev/null 2>&1; then
# Hammer the modules home by default # Hammer the modules home by default
sysctl -a | grep -q '\.tun\.' || kldload if_tun sysctl -a | grep -q '\.tun\.' || kldload if_tun
sysctl -a | grep -q '\.tap\.' || kldload if_tap sysctl -a | grep -q '\.tap\.' || kldload if_tap

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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@/runscript
# 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@/runscript
# 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}
@@ -39,11 +32,6 @@ find_wireless()
fi fi
done done
;; ;;
FreeBSD)
for iface in $(sysctl -b net.wlan.devices 2>/dev/null); do
echo "${iface##*/}"
done
;;
*) *)
for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do
if ifconfig "${iface##*/}" 2>/dev/null | \ if ifconfig "${iface##*/}" 2>/dev/null | \

11
init.d/.gitignore vendored
View File

@@ -1,17 +1,17 @@
binfmt
modules-load
bootmisc bootmisc
fsck fsck
hostname hostname
local local
localmount localmount
loopback
moused moused
net.lo
net.lo0
netmount netmount
network network
root root
savecache savecache
swap swap
swapfiles
sysctl sysctl
urandom urandom
devfs devfs
@@ -23,11 +23,8 @@ killprocs
modules modules
mount-ro mount-ro
mtab mtab
net-online
numlock numlock
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
@@ -45,3 +41,4 @@ syslogd
termencoding termencoding
ttys ttys
wscons wscons
tmpfiles.setup

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 swclock.in \ netmount.in root.in savecache.in swap.in swapfiles.in \
sysctl.in runsvdir.in urandom.in s6-svscan.in ${SRCS-${OS}} tmpfiles.setup.in swclock.in sysctl.in urandom.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= 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 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@/runscript
# 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,27 +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="Register misc binary format handlers"
depend()
{
after procfs
use modules devfs
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
}
start()
{
ebegin "Loading custom binary format handlers"
"$RC_LIBEXECDIR"/sh/binfmt.sh
eend $?
return 0
}

View File

@@ -1,19 +1,12 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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()
{ {
need localmount need localmount
before logger before logger
after clock root sysctl after clock sysctl
keyword -prefix -timeout keyword -prefix -timeout
} }
@@ -75,7 +68,7 @@ cleanup_var_run_dir()
do do
# Clean stale sockets # Clean stale sockets
if [ -S "$x" ]; then if [ -S "$x" ]; then
if command -v fuser >/dev/null 2>&1; then if type fuser >/dev/null 2>&1; then
fuser "$x" >/dev/null 2>&1 || rm -- "$x" fuser "$x" >/dev/null 2>&1 || rm -- "$x"
else else
rm -- "$x" rm -- "$x"
@@ -124,41 +117,19 @@ migrate_to_run()
clean_run() clean_run()
{ {
[ "$RC_SYS" = VSERVER -o "$RC_SYS" = LXC ] && return 0 [ "$RC_SYS" = VSERVER ] && return 0
local dir local dir
# If / is still read-only due to a problem, this will fail!
if ! checkpath -W /; then
ewarn "/ is not writable; unable to clean up underlying /run"
return 1
fi
if ! checkpath -W /tmp; then
ewarn "/tmp is not writable; unable to clean up underlying /run"
return 1
fi
# Now we know that we can modify /tmp and /
# if mktemp -d fails, it returns an EMPTY string
# STDERR: mktemp: failed to create directory via template /tmp/tmp.XXXXXXXXXX: Read-only file system
# STDOUT: ''
rc=0
dir=$(mktemp -d) dir=$(mktemp -d)
if [ -n "$dir" -a -d $dir -a -w $dir ]; then mount --bind / $dir
mount --bind / $dir && rm -rf $dir/run/* || rc=1 rm -rf $dir/run/*
umount $dir && rmdir $dir umount $dir
else rm -rf $dir
rc=1
fi
if [ $rc -ne 0 ]; then
ewarn "Could not clean up underlying /run on /"
return 1
fi
} }
start() start()
{ {
# Remove any added console dirs # Remove any added console dirs
if checkpath -W "$RC_LIBEXECDIR"; then rm -rf "$RC_LIBEXECDIR"/console/*
rm -rf "$RC_LIBEXECDIR"/console/*
fi
local logw=false runw=false extra= local logw=false runw=false extra=
# Ensure that our basic dirs exist # Ensure that our basic dirs exist
@@ -220,16 +191,10 @@ start()
if yesno $log_dmesg; then if yesno $log_dmesg; then
if $logw || checkpath -W /var/log; then if $logw || checkpath -W /var/log; then
# Create an 'after-boot' dmesg log # Create an 'after-boot' dmesg log
case "$RC_SYS" in if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ -a "$RC_SYS" != LXC ]; then
VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;; dmesg > /var/log/dmesg
*) chmod 640 /var/log/dmesg
if yesno ${previous_dmesg:-no}; then fi
mv /var/log/dmesg /var/log/dmesg.old
fi
dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg
;;
esac
fi fi
fi fi

View File

@@ -1,21 +1,14 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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 -uml -vserver -xenu -lxc
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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@/runscript
# 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,93 +1,21 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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="Mount system critical filesystems in /dev."
depend() depend() {
{ use dev-mount
provide dev-mount
before dev before dev
keyword -docker -lxc -prefix -systemd-nspawn -vserver keyword -prefix -vserver -lxc
} }
mount_dev() start() {
{ # Mount required stuff as user may not have then in /etc/fstab
local action=--mount devfstype msg=Mounting
# Some devices require exec, Bug #92921
local mountopts="exec,nosuid,mode=0755"
if yesno ${skip_mount_dev:-no} ; then
einfo "/dev will not be mounted due to user request"
return 0
fi
if mountinfo -q /dev; then
action=--remount
mountopts="remount,$mountopts"
msg=Remounting
fi
if fstabinfo -q /dev; then
ebegin "$msg /dev according to @SYSCONFDIR@/fstab"
fstabinfo -q $action /dev
eend $?
return 0
fi
if grep -q devtmpfs /proc/filesystems; then
devfstype=devtmpfs
mountopts="$mountopts,size=10M"
elif grep -q tmpfs /proc/filesystems; then
devfstype=tmpfs
mountopts="$mountopts,size=10M"
fi
if [ -n "$devfstype" ]; then
ebegin "$msg $devfstype on /dev"
mount -n -t $devfstype -o $mountopts dev /dev
eend $?
else
ewarn "This kernel does not have devtmpfs or tmpfs support, and there"
ewarn "is no entry for /dev in fstab."
ewarn "This means /dev will not be mounted."
ewarn "To avoid this message, set CONFIG_DEVTMPFS or CONFIG_TMPFS to y"
ewarn "in your kernel configuration or see @SYSCONFDIR@/conf.d/devfs"
fi
return 0
}
seed_dev()
{
# Seed /dev with some things that we know we need
# creating /dev/console, /dev/tty and /dev/tty1 to be able to write
# to $CONSOLE with/without bootsplash before udevd creates it
[ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
[ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
[ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
# udevd will dup its stdin/stdout/stderr to /dev/null
# and we do not want a file which gets buffered in ram
[ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
# so udev can add its start-message to dmesg
[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
# extra symbolic links not provided by default
[ -e /dev/fd ] || ln -snf /proc/self/fd /dev/fd
[ -e /dev/stdin ] || ln -snf /proc/self/fd/0 /dev/stdin
[ -e /dev/stdout ] || ln -snf /proc/self/fd/1 /dev/stdout
[ -e /dev/stderr ] || ln -snf /proc/self/fd/2 /dev/stderr
[ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core
# Mount required directories as user may not have them in /etc/fstab
for x in \ for x in \
"mqueue /dev/mqueue 1777 ,nodev mqueue" \ "mqueue /dev/mqueue 1777 ,nodev mqueue" \
"devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \ "devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \
"tmpfs /dev/shm 1777 ,nodev,mode=1777 shm" \ "tmpfs /dev/shm 1777 ,nodev shm" \
; do ; do
set -- $x set -- $x
grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue
@@ -106,23 +34,5 @@ seed_dev()
eend $? eend $?
fi fi
done done
}
restorecon_dev()
{
if [ -x /sbin/restorecon ]; then
ebegin "Restoring SELinux contexts in /dev"
restorecon -rF /dev >/dev/null 2>&1
eend $?
fi
return 0
}
start()
{
mount_dev
seed_dev
restorecon_dev
return 0 return 0
} }

View File

@@ -1,20 +1,13 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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 -vserver
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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,4 +1,4 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# Copyright 1992-2012 FreeBSD Project # Copyright 1992-2012 FreeBSD Project
# Released under the 2-clause BSD license # Released under the 2-clause BSD license

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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 -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@/runscript
# 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}
@@ -47,7 +40,7 @@ reset()
{ {
local uuid= x="[0-9a-f]" y="$x$x$x$x" local uuid= x="[0-9a-f]" y="$x$x$x$x"
if command -v kenv >/dev/null 2>&1; then if type kenv >/dev/null 2>&1; then
uuid=$(kenv smbios.system.uuid 2>/dev/null) uuid=$(kenv smbios.system.uuid 2>/dev/null)
fi fi
case "$uuid" in case "$uuid" in

View File

@@ -1,36 +1,19 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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 -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@/runscript
# 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 -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,31 @@ 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.
_hwclock --systz $utc_cmd $(get_noadjfile) $clock_args
: $(( 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 setting UTC, don't bother to run hwclock when first booting
_hwclock --hctosys $utc_cmd $(get_noadjfile) $clock_args # as that's the default
if [ "$PREVLEVEL" != N -o \
"$utc_cmd" != --utc -o \
-n "$clock_args" ];
then
if yesno ${clock_hctosys:-YES}; then
_hwclock --hctosys $utc_cmd $clock_args
else
_hwclock --systz $utc_cmd $clock_args
fi
: $(( retval += $? )) : $(( retval += $? ))
fi fi
@@ -143,7 +120,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 +142,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@/runscript
# 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@/runscript
# 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 -uml -vserver -xenu -lxc
} }
start() start()

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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@/runscript
# 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"
@@ -19,75 +12,40 @@ depend()
start() start()
{ {
ebegin "Starting local" einfo "Starting local"
local file has_errors=0 redirect retval local file
yesno $rc_verbose || redirect='> /dev/null 2>&1' for file in @SYSCONFDIR@/local.d/*.start ; do
eindent [ -x "$file" ] && "$file"
for file in @SYSCONFDIR@/local.d/*.start; do
if [ -x "${file}" ]; then
vebegin "Executing \"${file}\""
eval "${file}" $redirect
retval=$?
if [ ${retval} -ne 0 ]; then
has_errors=1
fi
veend ${retval} "Execution of \"${file}\" failed."
fi
done done
eoutdent
if command -v local_start >/dev/null 2>&1; then if type local_start >/dev/null 2>&1; then
ewarn "\"@SYSCONFDIR@/conf.d/local\" should be removed." ewarn "@SYSCONFDIR@/conf.d/local should be removed."
ewarn "Please move the code from the local_start function" ewarn "Please move the code from the local_start function"
ewarn "to executable scripts with an .start extension" ewarn "to scripts with an .start extension"
ewarn "in \"@SYSCONFDIR@/local.d\"" ewarn "in @SYSCONFDIR@/local.d"
local_start local_start
fi fi
eend ${has_errors} eend 0
# We have to end with a zero exit code, because a failed execution
# of an executable @SYSCONFDIR@/local.d/*.start file shouldn't result in
# marking the local service as failed. Otherwise we are unable to
# execute any executable @SYSCONFDIR@/local.d/*.stop file, because a failed
# marked service cannot be stopped (and the stop function would
# actually call the executable @SYSCONFDIR@/local.d/*.stop file(s)).
return 0
} }
stop() stop()
{ {
ebegin "Stopping local" einfo "Stopping local"
local file has_errors=0 redirect retval local file
yesno $rc_verbose || redirect='> /dev/null 2>&1'
eindent
for file in @SYSCONFDIR@/local.d/*.stop; do for file in @SYSCONFDIR@/local.d/*.stop; do
if [ -x "${file}" ]; then [ -x "$file" ] && "$file"
vebegin "Executing \"${file}\""
eval "${file}" $redirect
retval=$?
if [ ${retval} -ne 0 ]; then
has_errors=1
fi
veend ${retval} "Execution of \"${file}\" failed."
fi
done done
eoutdent
if command -v local_stop >/dev/null 2>&1; then if type local_start >/dev/null 2>&1; then
ewarn "\"@SYSCONFDIR@/conf.d/local\" should be removed." ewarn "@SYSCONFDIR@/conf.d/local should be removed."
ewarn "Please move the code from the local_stop function" ewarn "Please move the code from the local_stop function"
ewarn "to executable scripts with an .stop extension" ewarn "to scripts with an .stop extension"
ewarn "in \"@SYSCONFDIR@/local.d\"" ewarn "in @SYSCONFDIR@/local.d"
local_stop local_stop
fi fi
eend ${has_errors} eend 0
# An executable @SYSCONFDIR@/local.d/*.stop file which failed with a
# non-zero exit status is not a reason to mark this service
# as failed, therefore we have to end with a zero exit code.
return 0
} }

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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,16 +9,15 @@ 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 -vserver -lxc
} }
start() start()
{ {
# Mount local filesystems in /etc/fstab. # Mount local filesystems in /etc/fstab.
# The types variable must start with no, and must be a type local types="noproc" x= no_netdev=
local critical= 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},${x}" types="${types},no${x}"
done done
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
@@ -37,20 +29,9 @@ start()
ebegin "Mounting local filesystems" ebegin "Mounting local filesystems"
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=$?
if [ -z "$critical_mounts" ]; then # Always return 0 - some local mounts may not be critical for boot
rc=0 return 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
return $rc
} }
stop() stop()
@@ -78,37 +59,10 @@ stop()
no_umounts_r="^($no_umounts_r)$" no_umounts_r="^($no_umounts_r)$"
# Flush all pending disk writes now # Flush all pending disk writes now
sync sync; sync
. "$RC_LIBEXECDIR"/sh/rc-mount.sh . "$RC_LIBEXECDIR"/sh/rc-mount.sh
if [ "$RC_UNAME" = Linux ] && [ -d /sys/fs/aufs ] ; then
#if / is aufs we remount it noxino during shutdown
if mountinfo -q -f '^aufs$' / ; then
mount -o remount,noxino,rw /
sync
fi
local aufs_branch aufs_mount_point aufs_si_id aufs_br_id branches
for aufs_si_dir in /sys/fs/aufs/si*; do
[ -d "${aufs_si_dir}" ] || continue
aufs_si_id="si=${aufs_si_dir#/sys/fs/aufs/si_}"
aufs_mount_point="$(mountinfo -o ${aufs_si_id})"
branches="$aufs_si_dir/br[0-9] $aufs_si_dir/br[0-9][0-9] $aufs_si_dir/br[0-9][0-9][0-9]"
for x in $branches; do
[ -e "${x}" ] || continue
aufs_branch=$(sed 's/=.*//g' $x)
eindent
if ! mount -o "remount,del:$aufs_branch" "$aufs_mount_point" > /dev/null 2>&1; then
ewarn "Failed to remove branch $aufs_branch from aufs" \
"$aufs_mount_point"
fi
eoutdent
sync
done
done
fi
# Umount loop devices # Umount loop devices
einfo "Unmounting loop devices" einfo "Unmounting loop devices"
eindent eindent

View File

@@ -1,34 +1,35 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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."
depend() depend()
{ {
keyword -jail -prefix -systemd-nspawn -vserver keyword -jail -prefix -vserver
} }
start() start()
{ {
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
ebegin "Bringing up network interface lo" ebegin "Bringing up network interface lo"
if command -v ip > /dev/null 2>&1; then if type ip > /dev/null 2>&1; then
ip addr add 127.0.0.1/8 dev lo brd + ip addr add 127.0.0.1/8 dev lo brd + scope host
ip route add 127.0.0.0/8 dev lo scope host
ip link set lo up ip link set lo up
else else
ifconfig lo 127.0.0.1 netmask 255.0.0.0 ifconfig lo 127.0.0.1 netmask 255.0.0.0
route add -net 127.0.0.0 netmask 255.0.0.0 gw 127.0.0.1
fi fi
else else
ebegin "Bringing up network interface lo0" ebegin "Bringing up network interface lo0"
ifconfig lo0 127.0.0.1 netmask 255.0.0.0 ifconfig lo0 127.0.0.1 netmask 255.0.0.0
route -q add -inet 127.0.0.0 -netmask 255.0.0.0 127.0.0.1
fi fi
eend $? eend $?
} }
stop()
{
return 0
}

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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,37 +1,18 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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 -vserver -lxc
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
} }
FreeBSD_modules() start()
{ {
local cnt=0 x # Should not fail if kernel do not have module
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 does not have module
# support compiled in ... # support compiled in ...
[ ! -f /proc/modules ] && return 0 [ ! -f /proc/modules ] && return 0
@@ -48,21 +29,22 @@ Linux_modules()
x=${x%.*} x=${x%.*}
done done
local list= x= xx= y= args= mpargs= a= local list= x= xx= y= args= mpargs= cnt=0 a=
for x in $kv_variant_list ; do for x in $kv_variant_list ; do
eval list=\$modules_$(shell_var "$x") eval list=\$modules_$(shell_var "$x")
[ -n "$list" ] && break [ -n "$list" ] && break
done done
[ -z "$list" ] && list=$modules [ -z "$list" ] && list=$modules
[ -n "$list" ] && ebegin "Loading kernel modules"
for x in $list; do for x in $list; do
a=${x#*:} a=${x#*:}
if [ "$a" = "$x" ]; then if [ "$a" = "$x" ]; then
unset mpargs unset mpargs
ebegin "Loading module $x"
else else
x=${x%%:*} x=${x%%:*}
mpargs="-o $a" mpargs="-o $a"
ebegin "Loading module $x as $a"
fi fi
aa=$(shell_var "$a") aa=$(shell_var "$a")
xx=$(shell_var "$x") xx=$(shell_var "$x")
@@ -74,16 +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 --verbose "$mpargs" "$x" "$args" eval modprobe -q "$mpargs" "$x" "$args"
eend $? "Failed to load $x" && : $(( cnt += 1 ))
done done
[ -n "$list" ] && eend 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@/runscript
# 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 -vserver -lxc
} }
start() start()
@@ -22,7 +15,7 @@ start()
local ret=0 local ret=0
# Flush all pending disk writes now # Flush all pending disk writes now
sync sync; sync
ebegin "Remounting remaining filesystems read-only" ebegin "Remounting remaining filesystems read-only"
# We need the do_unmount function # We need the do_unmount function
@@ -34,9 +27,6 @@ start()
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs= local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs=
m="$m|/bin|/sbin|/lib(32|64)?|/libexec" m="$m|/bin|/sbin|/lib(32|64)?|/libexec"
if [ -e "$rc_svcdir"/usr_premounted ]; then
m="$m|/usr"
fi
# RC_NO_UMOUNTS is an env var that can be set by plugins # RC_NO_UMOUNTS is an env var that can be set by plugins
local IFS="$IFS:" local IFS="$IFS:"
for x in $no_umounts $RC_NO_UMOUNTS; do for x in $no_umounts $RC_NO_UMOUNTS; do

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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,46 +1,36 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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"
depend() depend()
{ {
need root need root
keyword -prefix -systemd-nspawn keyword -prefix
} }
start() start()
{ {
local rc=0 if [ -L /etc/mtab ]
ebegin "Updating /etc/mtab" then
if ! checkpath -W /etc; then einfo "Skipping mtab update (mtab is a symbolic link)"
rc=1 return 0
elif ! yesno ${mtab_is_file:-no}; then
[ ! -L /etc/mtab ] && [ -f /etc/mtab ] &&
ewarn "Removing /etc/mtab file"
einfo "Creating mtab symbolic link"
ln -snf /proc/self/mounts /etc/mtab
else
[ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link"
rm -f /etc/mtab
einfo "Creating mtab file"
# With / as tmpfs we cannot umount -at tmpfs in localmount as that
# makes / readonly and dismounts all tmpfs even if in use which is
# not good. Luckily, umount uses /etc/mtab instead of /proc/mounts
# which allows this hack to work.
grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab
# Remove stale backups
rm -f /etc/mtab~ /etc/mtab~~
fi fi
eend $rc "/etc is not writable; unable to create /etc/mtab"
return 0 ebegin "Updating /etc/mtab"
if ! echo 2>/dev/null >/etc/mtab; then
ewend 1 "/etc/mtab is not updateable"
return 0
fi
# With / as tmpfs we cannot umount -at tmpfs in localmount as that
# makes / readonly and dismounts all tmpfs even if in use which is
# not good. Luckily, umount uses /etc/mtab instead of /proc/mounts
# which allows this hack to work.
grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab
# Remove stale backups
rm -f /etc/mtab~ /etc/mtab~~
eend 0
} }

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
local rc state 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,60 +1,41 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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, other than NFS, according to /etc/fstab."
# We skip all NFS shares in this script because they require extra
# daemons to be running on the client in order to work correctly.
# It is best to allow nfs-utils to handle all nfs shares.
depend() depend()
{ {
local opts mywant="" config /etc/fstab
for opts in $(fstabinfo -o -t nfs,nfs4); do use afc-client amd 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 -vserver -lxc
} }
start() start()
{ {
local x= fs= rc= local x= fs= rc=
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list $extra_net_fs_list; do
case "$x" in
nfs|nfs4)
continue
;;
esac
fs="$fs${fs:+,}$x" fs="$fs${fs:+,}$x"
done done
ebegin "Mounting network filesystems" ebegin "Mounting network filesystems"
mount -at $fs mount -at $fs
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 return 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
return $rc
} }
stop() stop()
@@ -65,7 +46,14 @@ stop()
. "$RC_LIBEXECDIR"/sh/rc-mount.sh . "$RC_LIBEXECDIR"/sh/rc-mount.sh
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list $extra_net_fs_list; do
fs="$fs${fs:+,}$x" case "$x" in
nfs|nfs4)
continue
;;
*)
fs="$fs${fs:+,}$x"
;;
esac
done done
if [ -n "$fs" ]; then if [ -n "$fs" ]; then
umount -at $fs || eerror "Failed to simply unmount filesystems" umount -at $fs || eerror "Failed to simply unmount filesystems"
@@ -74,14 +62,21 @@ stop()
eindent eindent
fs= fs=
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list $extra_net_fs_list; do
fs="$fs${fs:+|}$x" case "$x" in
nfs|nfs4)
continue
;;
*)
fs="$fs${fs:+|}$x"
;;
esac
done done
[ -n "$fs" ] && fs="^($fs)$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount umount ${fs:+--fstype-regex} $fs --netdev do_unmount umount ${fs:+--fstype-regex} $fs --netdev
retval=$? retval=$?
eoutdent eoutdent
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@/runscript
# 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.
@@ -53,11 +46,7 @@ sys_interfaces()
local w= rest= i= cmd=$1 local w= rest= i= cmd=$1
while read w rest; do while read w rest; do
i=${w%%:*} i=${w%%:*}
case "$i" in [ "$i" != "$w" ] || continue
"$w") continue ;;
lo|lo0) continue ;;
*) ;;
esac
if [ "$cmd" = u ]; then if [ "$cmd" = u ]; then
ifconfig "$i" | grep -q "[ ]*UP" || continue ifconfig "$i" | grep -q "[ ]*UP" || continue
fi fi

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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@/runscript
# 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@/runscript
# 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 -vserver -lxc
} }
_setleds() _setleds()

View File

@@ -1,19 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2014-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.
# Can be used on OSs that take care of the clock.
description="Provides clock"
depend()
{
provide clock
}

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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}}
@@ -24,7 +17,7 @@ depend() {
start() start()
{ {
ebegin "Starting $name" ebegin "Starting $name"
if command -v kldload >/dev/null 2>&1; then if type kldload >/dev/null 2>&1; then
kldload pf 2>/dev/null kldload pf 2>/dev/null
fi fi
pfctl -q -F all pfctl -q -F all

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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,40 +1,73 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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 -vserver -lxc
} }
start() start()
{ {
# Make sure we insert usbcore if it's a module
if [ -f /proc/modules -a ! -d /sys/module/usbcore -a ! -d /proc/bus/usb ]; then
modprobe -q usbcore
fi
[ -e /proc/filesystems ] || return 0
# 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
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 \
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
if eend $? ; then
local fmts
ebegin "Loading custom binary format handlers"
fmts=$(grep -hsv -e '^[#;]' -e '^[[:space:]]*$' \
/run/binfmt.d/*.conf \
/etc/binfmt.d/*.conf \
""/usr/lib/binfmt.d/*.conf)
if [ -n "${fmts}" ]; then
echo "${fmts}" > /proc/sys/fs/binfmt_misc/register
fi
eend $? eend $?
fi
fi fi
fi fi
[ "$RC_SYS" = "OPENVZ" ] && return 0
# Check what USB fs the kernel support. Currently
# 2.5+ kernels, and later 2.4 kernels have 'usbfs',
# while older kernels have 'usbdevfs'.
if [ -d /proc/bus/usb -a ! -e /proc/bus/usb/devices ]; then
local usbfs=$(grep -Fow usbfs /proc/filesystems ||
grep -Fow usbdevfs /proc/filesystems)
if [ -n "$usbfs" ]; then
ebegin "Mounting USB device filesystem [$usbfs]"
local usbgid="$(getent group usb | \
sed -e 's/.*:.*:\(.*\):.*/\1/')"
mount -t $usbfs \
-o ${usbgid:+devmode=0664,devgid=$usbgid,}noexec,nosuid \
usbfs /proc/bus/usb
eend $?
fi
fi
# Setup Kernel Support for SELinux
if [ -d /selinux ] && ! mountinfo -q /selinux; then
if grep -qs selinuxfs /proc/filesystems; then
ebegin "Mounting SELinux filesystem"
mount -t selinuxfs selinuxfs /selinux
eend $?
fi
fi
return 0 return 0
} }

View File

@@ -1,13 +1,6 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/runscript
# 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"

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