Compare commits

..

49 Commits

Author SHA1 Message Date
William Hubbs
4a9c450ec2 update change log 2015-02-04 22:03:26 -06:00
William Hubbs
bb4c14999c Add nfsclient to netmount use dependencies
X-Gentoo-Bug: 537996
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=537996
2015-02-04 21:59:50 -06:00
William Hubbs
252422dcf0 start openrc-0.13.9 2015-02-04 21:59:14 -06:00
William Hubbs
a3a64ac94e update ChangeLog 2015-01-18 09:45:32 -06:00
William Hubbs
1a2f45a4c5 tmpfiles.dev: pass --boot to tmpfiles.sh so kmod works properly 2015-01-18 09:32:49 -06:00
William Hubbs
34b55f31b3 start work on 0.13.8 2015-01-18 09:31:53 -06:00
William Hubbs
e0c746e938 Create ChangeLog 2015-01-15 09:51:12 -06:00
William Hubbs
50329eee7a Add description for cgroup_cleanup
X-Gentoo-Bug: 535184
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=535184
2015-01-13 01:07:02 -06:00
Doug Freed
fb81028121 fix double free of pidfile
This fixes a double free of the pidfile variable. For discussion of this
issue, see the bug.

X-Gentoo-Bug: 531600
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=531600
2015-01-13 01:07:02 -06:00
William Hubbs
50e99aa30a Do not call the shell to evaluate CHANGELOG_LIMIT
The git log command understands dates such as "1 year ago", so there is
no need to use the date command.
2015-01-13 01:07:02 -06:00
William Hubbs
b177b79242 Add target to create ChangeLog
This was added by request because some users are requesting a ChangeLog.

This fixes #29.
2015-01-13 01:07:02 -06:00
William Hubbs
7009f66872 start working on 0.13.7 2015-01-13 00:45:19 -06:00
William Hubbs
2eb0ea9afb Make sysfs behave like netmount and localmount
sysfs now mounts all related sysfs file systems and returns success,
like netmount and localmount.

Also, we now check to make sure the cgroups are not mounted before we
mount them.

X-Gentoo-Bug: 530138
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=530138
2014-11-23 21:59:01 -06:00
William Hubbs
534031fc7a Start work on 0.13.6 2014-11-23 21:57:44 -06:00
William Hubbs
6b85d4288c devfs: optionally add missing symbolic links
If symbolic links for /dev/{fd,stdin,stdout,stderr,core} do not exist
once /dev is mounted, we should create them.
2014-11-20 11:07:14 -06:00
William Hubbs
dec899b946 Start work on 0.13.5 2014-11-20 11:06:03 -06:00
William Hubbs
c9f6e2a6c8 netmount: unmount nfs file systems 2014-11-06 14:44:01 -06:00
William Hubbs
e1a4aef3e5 start work on 0.13.4 2014-11-06 14:43:02 -06:00
Alexander Vershilov
cb2c45a3c0 Fix incorrect handling of chroot option.
Fixes #28.

X-Gentoo-Bug: #527370
X-Gentoo-Bug-Url: https://bugs.gentoo.org/show_bug.cgi?id=527370
2014-11-01 18:32:26 -05:00
William Hubbs
d92eca3988 Start work on 0.13.3 2014-11-01 18:31:20 -05:00
Johan Bergström
5bdd08e0e7 Pass ncurses cflags to build
Fixes #25
Note from William Hubbs:
The original patch overwrote CFLAGS. I modified this patch to add the
ncurses cflags to CPPFLAGS instead of overwriting CFLAGS.
2014-10-26 13:32:46 -05:00
William Hubbs
8a68dc899e Fix compile errors created by bundling queue.h 2014-10-24 10:59:16 -05:00
Anthony G. Basile
2d1e255285 helpers.h, start-stop-daemon.c: remove uneeded macros
TAILQ_CONCAT, TAILQ_FOREACH_SAFE and LIST_FOREACH_SAFE are defined
in our bundled queue.h and are no longer required.
2014-10-24 10:59:16 -05:00
Anthony G. Basile
6f9fd30edb Bundle <sys/queue.h> from NetBSD
We are bundling this to allow building on musl-based systems since musl
does not include <sys/queue.h>.
2014-10-24 10:59:16 -05:00
William Hubbs
e0c32c23dc Fix all tests for GNU/kFreeBSD
It is necessary to check for both the kernel and c library because
__FreeBSD_kernel is also defined on native FreeBSD [1].

[1] http://sourceforge.net/p/predef/wiki/OperatingSystems/
2014-10-24 10:59:16 -05:00
Gabriele Giacone
4777035d53 Fix rc_svcdir for GNU/Hurd 2014-10-24 10:59:16 -05:00
Svante Signell
f049b535b3 fix defines for GNU/Hurd 2014-10-24 10:59:16 -05:00
Svante Signell
4ba30c5a1b add missing files for GNU/Hurd 2014-10-24 10:59:15 -05:00
Gabriele Giacone
91734d20be Fix rc_svcdir for GNU/kFreeBSD 2014-10-24 10:59:15 -05:00
Gabriele Giacone
b4194fef43 Add missing files for GNU/kFreeBSD 2014-10-24 10:59:15 -05:00
Svante Signell
5f23128f30 Fix GNU/kFreeBSD port
Check for __FreeBSD_kernel instead of __GLIBC__ in source files.

note from William Hubbs:
I was told this is a better check for GNU/kFreeBSD than checking the
C  library the source is being compiled against.
GNU/kFreeBSD than checking which library we are using.
2014-10-24 10:59:15 -05:00
Anthony G. Basile
a634534167 einfo.h, rc.h.in: simplify __BEGIN_DECLS logic
There is no need to redefine __BEGIN_DECLS and __END_DECLS.
We simplify the logic here and avoid undefining these macros.
2014-10-24 10:59:15 -05:00
Anthony G. Basile
f77006b58e einfo.h, rc.h.in: ensure __BEGIN_DECLS is defined
Some Standard C Libraries, like musl, don't define __BEGIN_DECLS
or __END_DECLS.  We add some ifdef magic to ensure these are
available.
2014-10-24 10:59:15 -05:00
William Hubbs
ef22f78a48 Update news file wrt chroot variable 2014-10-20 16:03:27 -05:00
Alexander Vershilov
735dc45c39 librc:look for the pid file in a chroot if defined
X-Gentoo-Bug: 524388
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=524388
2014-10-20 16:03:27 -05:00
William Hubbs
0d3fdd3769 runscript.sh: add chroot support
This adds support for a chroot variable which will be passed to the
start-stop-daemon --chroot switch to runscript.sh when starting a
daemon. This also needs to be saved so it can be used in locating the
pid file when stopping the daemon.

X-Gentoo-Bug: 524388
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=524388
2014-10-20 16:03:27 -05:00
William Hubbs
5a1a94b2cc Add NEWS file 2014-10-20 16:03:27 -05:00
William Hubbs
a76e5a827c add back nfs and nfs4 file systems
Fix gentoo bug #427996 correctly.
We should attempt to mount the file systems, but not try to start the
daemons. The previous fix removed mounting the file systems as well as
starting the daemons.

X-Gentoo-Bug: 508574
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=508574
2014-10-20 16:03:27 -05:00
William Hubbs
b964de8287 man: Document start_inactive and in_background_fake 2014-10-16 11:42:38 -05:00
William Hubbs
2c1051ad3f typo fix 2014-10-16 11:32:48 -05:00
Roy Marples
a2187e897e Use exception-based approach for cgroup/ulimit setup
Note from William Hubbs:
I spoke with Roy about this, and he pointed out that user-defined
functions may need the limits applied, so it is better to go with a
method that uses exceptions to determine which functions apply the
limits.

X-Gentoo-Bug: 522408
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=522408
2014-10-16 11:09:36 -05:00
Rick Farina (ZeroChaos)
e8043fe378 localmount: unmount aufs branches 2014-10-13 15:41:03 -05:00
William Hubbs
082fd53d9e runscript: move verbose mode setting near debug setting 2014-10-13 15:40:54 -05:00
Joe M
61fd8b2996 savecache: check permissions on the correct directory 2014-10-13 15:39:56 -05:00
Andrew Gregory
43d727dc3f tmpfiles.sh: add support for C action
Recursively copies files or directories.  Added by systemd in 849958d1.
2014-10-13 15:39:36 -05:00
Andrew Gregory
b8e52583ca tmpfiles.sh: add support for + modifier
systemd added support for b+, c+, p+, and L+ in 2e78fa79 and 1554afae to
remove the target path if it already exists.
2014-10-13 15:39:22 -05:00
William Hubbs
1a7af5bbde Start work on 0.13.2 2014-10-13 15:39:12 -05:00
William Hubbs
785b61e872 cgroups: fix cgroup subsystem mounting
Originally, we aborted all of the cgroup setup if /sys/fs/cgroup/openrc
was already mounted. This  caused an issue in lxc containers, so we
should always allow the subsystems to be mounted.

X-Gentoo-Bug: 520606
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=520606
2014-08-22 14:19:03 -05:00
William Hubbs
54ed42503f start work on 0.13.1 2014-08-22 14:18:33 -05:00
117 changed files with 708 additions and 2387 deletions

1101
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@@ -1,31 +1,34 @@
# 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
---------------------------
What: Service pause action
When: 1.0
Why: The same affect can be obtained with the --nodeps option to stop.
Why: ...
Who:
## start-stop-daemon options --startas, --chuid , --oknodo
---------------------------
What: 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
--startas => use --name or --exec
--chuid => use --user
--oknodo => ignore return code instead
Who:
## runscript and rc symbolic links
---------------------------
What: runscript and rc symbolic links
When: 1.0
@@ -34,7 +37,9 @@ Why: Deprecated in favor of openrc-run and openrc due to naming
Who:
## support for the opts variable in service scripts
---------------------------
What: support for the opts variable in service scripts
When: 1.0
@@ -43,7 +48,9 @@ Why: Depprecated in favor of extra_commands, extra_started_commands
Who:
## support for local_start and local_stop
---------------------------
What: support for local_start and local_stop
When: 1.0
@@ -51,7 +58,9 @@ Why: Depprecated in favor of executable scripts in @SYSCONFDIR@/local.d
Who:
## the mtab service script
---------------------------
What: the mtab service script
When: make warnings more visible in 1.0, remove in 2.0
@@ -59,3 +68,5 @@ Why: /etc/mtab should be a symbolic link to /proc/self/mounts on modern
Linux systems
Who:
---------------------------

View File

@@ -2,10 +2,7 @@
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
TOP:= ${dir ${realpath ${firstword ${MAKEFILE_LIST}}}}
MK= ${TOP}/mk
include ${TOP}/Makefile.inc
include Makefile.inc
SUBDIR= conf.d etc init.d local.d man scripts sh src sysctl.d
@@ -20,11 +17,12 @@ SUBDIR+= runlevels
INSTALLAFTER= _installafter
MK= mk
include ${MK}/sys.mk
include ${MK}/os.mk
include ${MK}/subdir.mk
include ${MK}/dist.mk
include ${MK}/gitver.mk
include ${MK}/git.mk
_installafter:
ifeq (${MKPREFIX},yes)

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.18
VERSION= 0.13.9
PKG= ${NAME}-${VERSION}

View File

@@ -1,30 +1,9 @@
# OpenRC NEWS
OpenRC NEWS
This file will contain a list of notable changes for each release. Note
the information in this file is in reverse order.
This file will contain a list of notable changes for each release.
## 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
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.
@@ -33,7 +12,8 @@ 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
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.
@@ -56,7 +36,8 @@ 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
OpenRC-0.12
===========
The net.* scripts, originally from Gentoo Linux, have
been removed. If you need these scripts, look for a package called

66
README Normal file
View File

@@ -0,0 +1,66 @@
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.
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.

View File

@@ -1,4 +1,6 @@
# Using Busybox as your Default Shell with OpenRC
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
@@ -25,8 +27,5 @@ CONFIG_SETFONT -- The setfont applet does not support the -u option from kbd.
CONFIG_IP -- The ip applet doesn't support the "scope" modifier for
"ip route add" and "ip address add".
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.

View File

@@ -1,5 +1,3 @@
# OpenRC History
This history of OpenRC was written by Daniel Robbins, Roy Marples, William
Hubbs and others.

View File

@@ -1,99 +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 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`.
`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
in this repository. Follow it. Contact openrc@gentoo.org for any questions
or fixes you might notice.
## C CODE
##########
# C CODE #
##########
The BSD Kernel Normal Form (KNF) style is used [1]. Basically, it is like
K&R/LKML, but wrapped lines that are indented use 4 spaces. Here are the
highlights.
The BSD Kernel Normal Form (KNF) style is used:
http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style
Basically, it's like K&R/LKML, but wrapped lines that are indented use 4 spaces.
- no trailing whitespace
- indented code use tabs (not line wrapped)
- cuddle the braces (except for functions)
- space after native statements and before paren (for/if/while/...)
- no space between function and paren
- pointer asterisk cuddles the variable, not the type
Highlights:
- no trailing whitespace
- indented code use tabs (not line wrapped)
- cuddle the braces (except for functions)
- space after native statements and before paren (for/if/while/...)
- no space between function and paren
- pointer asterisk cuddles the variable, not the type
```
void foo(int c)
{
int ret = 0;
@@ -32,15 +32,16 @@ void foo(int c)
return ret;
}
```
## COMMIT MESSAGES
##################
# COMMIT MESSAGES #
##################
The following is an example of a correctly formatted git commit message
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
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>
X-[Distro]-Bug: BugID
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
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
distribution, e.g. X-Gentoo-Bug.
[1] http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style
[2] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[1] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

View File

@@ -1,7 +1,7 @@
include ../mk/net.mk
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount mount netmount urandom tmpfiles \
CONF= bootmisc fsck hostname localmount netmount urandom tmpfiles \
${CONF-${OS}}
ifeq (${MKNET},yes)

View File

@@ -1,23 +0,0 @@
# The mount service is a multiplexed service. This means you must have
# symbolic links to it in your init.d directory for each file system you
# want to mount. I recommend naming those symbolic links the same as the
# paths to the file systems they mount, removing the leading slash and
# substituting _ for the remaining slashes, for example:
#
# cd /etc/init.d
# ln -s mount mount.usr
# ln -s mount mount.usr_local
#
# Set up a symbolic link like this for each file system you wish to
# mount, then add the symbolic link to the appropriate runlevel. Once
# that is done, add the appropriate definitions for the file system to
# this file.
#
#You will need to define the mountpoint and any dependencies for each
#filesystem as shown here.
#
#If the mountpoint does not match an entry in fstab, the mount will be
#ignored.
#
#mount_usr_mountpoint="/usr"
#

View File

@@ -2,15 +2,14 @@
# LINUX SPECIFIC OPTIONS
# This is the subsystem type. Valid options on Linux:
# "" - nothing special
# "lxc" - Linux Containers
# "openvz" - Linux OpenVZ
# "prefix" - Prefix
# "uml" - Usermode Linux
# "vserver" - Linux vserver
# "systemd-nspawn" - Container created by the systemd-nspawn utility
# "xen0" - Xen0 Domain
# "xenU" - XenU Domain
# "" - 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

View File

@@ -116,9 +116,6 @@
#SSD_NICELEVEL="-19"
# 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

View File

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

View File

@@ -14,4 +14,4 @@ LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LDLIBRARY_PATH}" ; export LD_LIBRARY
[ -z "$TERM" -o "$TERM" = "dumb" ] && TERM="@TERM@" && export TERM
action=${1:-shutdown}
exec /sbin/openrc "${action}"
exec /sbin/rc "${action}"

View File

@@ -10,6 +10,6 @@ name="Avahi DNS Configuration Daemon"
depend()
{
use dns
need mount.usr mount.var dbus
need localmount dbus
after bootmisc
}

View File

@@ -10,6 +10,6 @@ name="Avahi Service Advertisement Daemon"
depend()
{
use dns
need mount.usr mount.var dbus
need localmount dbus
after bootmisc
}

View File

@@ -9,7 +9,7 @@ name="Message Bus Daemon"
depend()
{
need mount.usr mount.var net
need localmount net
after bootmisc
}

View File

@@ -10,7 +10,7 @@ name="DHCP Client Daemon"
depend()
{
provide net
need mount.usr mount.var
need localmount
use logger
after bootmisc modules
before dns

View File

@@ -12,7 +12,7 @@ extra_started_commands="reload"
depend()
{
provide dns
need mount.usr mount.var net
need localmount net
after bootmisc
}

View File

@@ -24,7 +24,7 @@ esac
depend()
{
provide dns
need mount.usr mount.var
need localmount
after bootmisc
}

View File

@@ -14,7 +14,7 @@ name="Network Time Protocol Daemon"
depend()
{
use dns
need mount.usr mount.var
need localmount
after bootmisc ntp-client
}

View File

@@ -31,7 +31,7 @@ fi
depend()
{
need mount.usr mount.var net
need localmount net
use dns
after bootmisc
}

View File

@@ -10,7 +10,7 @@ name="WPA Supplicant Daemon"
depend()
{
need mount.usr mount.var
need localmount
use logger
after bootmisc modules
before dns dhcpcd net

2
init.d/.gitignore vendored
View File

@@ -4,7 +4,6 @@ hostname
local
localmount
loopback
mount
moused
netmount
network
@@ -24,7 +23,6 @@ modules
mount-ro
mtab
numlock
osclock
procfs
staticroute
sysfs

View File

@@ -2,8 +2,8 @@ include ../mk/net.mk
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \
mount.in netmount.in osclock.in root.in savecache.in swap.in swapfiles.in \
tmpfiles.setup.in swclock.in sysctl.in urandom.in s6-svscan.in ${SRCS-${OS}}
netmount.in root.in savecache.in swap.in swapfiles.in \
tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
BIN= ${OBJS}
# Are we installing our network scripts?
@@ -21,7 +21,7 @@ SRCS-FreeBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.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 mount-ro.in mtab.in numlock.in \
procfs.in sysfs.in termencoding.in tmpfiles.dev.in

View File

@@ -1,20 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright 2015 William Hubbs <w.d.hubbs@gmail.com>
# Released under the 2-clause BSD license.
description="Register misc binary format handlers"
depend()
{
after procfs
use modules devfs
keyword -openvz -prefix -systemd-nspawn -vserver -lxc
}
start()
{
ebegin "Loading custom binary format handlers"
"$RC_LIBEXECDIR"/sh/binfmt.sh
eend $?
return 0
}

View File

@@ -4,7 +4,7 @@
depend()
{
need mount.usr mount.var
need localmount
before logger
after clock root sysctl
keyword -prefix -timeout
@@ -119,32 +119,11 @@ clean_run()
{
[ "$RC_SYS" = VSERVER -o "$RC_SYS" = LXC ] && return 0
local dir
# If / is still read-only due to a problem, this will fail!
if ! checkpath -W /; then
eerror "/ is not writable; unable to clean up underlying /run"
return 1
fi
if ! checkpath -W /tmp; then
eerror "/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)
if [ -n "$dir" -a -d $dir -a -w $dir ]; then
mount --bind / $dir && rm -rf $dir/run/* || rc=1
umount $dir
rm -rf $dir
else
rc=1
fi
if [ $rc -ne 0 ]; then
eerror "Could not clean up underlying /run on /"
return 1
fi
mount --bind / $dir
rm -rf $dir/run/*
umount $dir
rm -rf $dir
}
start()
@@ -214,13 +193,10 @@ start()
if yesno $log_dmesg; then
if $logw || checkpath -W /var/log; then
# Create an 'after-boot' dmesg log
case "$RC_SYS" in
VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;;
*)
dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg
;;
esac
if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ -a "$RC_SYS" != LXC ]; then
dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg
fi
fi
fi

View File

@@ -6,9 +6,9 @@ description="Sets a font for the consoles."
depend()
{
need mount.usr mount.var termencoding
need localmount termencoding
after hotplug bootmisc
keyword -openvz -prefix -systemd-nspawn -uml -vserver -xenu -lxc
keyword -openvz -prefix -uml -vserver -xenu -lxc
}
start()

View File

@@ -7,7 +7,7 @@ command_args=$devd_args
name="Device State Change Daemon"
depend() {
need mount.usr mount.var
need localmount
after bootmisc
before net.lo0
keyword -jail -prefix

View File

@@ -6,7 +6,7 @@ description="Creates the dev database"
depend()
{
need mount.usr mount.var
need localmount
}
start()

View File

@@ -8,7 +8,7 @@ depend()
{
provide dev-mount
before dev
keyword -prefix -systemd-nspawn -vserver -lxc
keyword -prefix -vserver -lxc
}
mount_dev()

View File

@@ -7,7 +7,7 @@ description="Set the dmesg level for a cleaner boot"
depend()
{
before dev modules
keyword -lxc -prefix -systemd-nspawn -vserver
keyword -lxc -prefix -vserver
}
start()

View File

@@ -9,7 +9,7 @@ _IFS="
depend()
{
use dev clock modules
keyword -jail -openvz -prefix -systemd-nspawn -timeout -vserver -lxc -uml
keyword -jail -openvz -prefix -timeout -vserver -lxc -uml
}
_abort() {

View File

@@ -5,7 +5,7 @@
description="Sets the hostname of the machine."
depend() {
keyword -prefix -systemd-nspawn -lxc
keyword -prefix -lxc
}
start()

View File

@@ -28,7 +28,7 @@ depend()
else
before *
fi
keyword -openvz -prefix -systemd-nspawn -uml -vserver -xenu -lxc
keyword -openvz -prefix -uml -vserver -xenu -lxc
}
setupopts()

View File

@@ -6,9 +6,9 @@ description="Applies a keymap for the consoles."
depend()
{
need mount.usr mount.var termencoding
need localmount termencoding
after bootmisc
keyword -openvz -prefix -systemd-nspawn -uml -vserver -xenu -lxc
keyword -openvz -prefix -uml -vserver -xenu -lxc
}
start()

View File

@@ -14,13 +14,12 @@ start()
{
ebegin "Starting local"
local file has_errors=0 redirect retval
yesno $rc_verbose || redirect='> /dev/null 2>&1'
local file has_errors=0 retval
eindent
for file in @SYSCONFDIR@/local.d/*.start; do
if [ -x "${file}" ]; then
vebegin "Executing \"${file}\""
eval "${file}" $redirect
"${file}" 2>&1 >/dev/null
retval=$?
if [ ${retval} -ne 0 ]; then
has_errors=1
@@ -53,13 +52,12 @@ stop()
{
ebegin "Stopping local"
local file has_errors=0 redirect retval
yesno $rc_verbose || redirect='> /dev/null 2>&1'
local file has_errors=0 retval
eindent
for file in @SYSCONFDIR@/local.d/*.stop; do
if [ -x "${file}" ]; then
vebegin "Executing \"${file}\""
eval "${file}" $redirect
"${file}" 2>&1 >/dev/null
retval=$?
if [ ${retval} -ne 0 ]; then
has_errors=1

View File

@@ -9,7 +9,7 @@ depend()
need fsck
use lvm modules mtab
after lvm modules
keyword -jail -prefix -systemd-nspawn -vserver -lxc
keyword -jail -prefix -vserver -lxc
}
start()

View File

@@ -6,7 +6,7 @@ description="Configures the loopback interface."
depend()
{
keyword -jail -prefix -systemd-nspawn -vserver
keyword -jail -prefix -vserver
}
start()

View File

@@ -6,7 +6,7 @@ extra_commands="restore"
depend()
{
need mount.usr mount.var
need localmount
keyword -jail -prefix
}

View File

@@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules."
depend()
{
use isapnp
keyword -openvz -prefix -systemd-nspawn -vserver -lxc
keyword -openvz -prefix -vserver -lxc
}
start()

View File

@@ -7,7 +7,7 @@ description="Re-mount filesytems read-only for a clean reboot."
depend()
{
need killprocs savecache
keyword -openvz -prefix -systemd-nspawn -vserver -lxc
keyword -openvz -prefix -vserver -lxc
}
start()

View File

@@ -1,118 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2015 William Hubbs <w.d.hubbs@gmail.com>
# Released under the 2-clause BSD license.
description="Mount a file system defined in @SYSCONFDIR@/fstab"
extra_commands="generate"
depend()
{
need fsck
use modules mtab
after modules
keyword -jail -prefix -vserver -lxc
}
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
start_pre()
{
# Do not start this service as "mount"
if [ "$rc_svcname" = mount ]; then
eerror "The mount service should not be started directly"
return 1
fi
return 0
}
start()
{
if [ "$rc_svcname" = mount-generate-symlinks ]; then
generate
return $?
fi
local mountname=${rc_svcname#*.}
local fspath=${mount_${mountname}_mountpoint}
# for now, make sure fspath is in fstab
if [ ! fstabinfo -q $fspath ]; then
einfo "$rc_svcname: $fspath is not in @SYSCONFDIR@/fstab"
return 0
fi
# Is the file system mounted?
if mountinfo -q $fspath; then
action=remount
msg=Remounting
else
action=mount
msg=Mounting
fi
ebegin "$msg $fspath according to @SYSCONFDIR@/fstab"
fstabinfo --$action $fspath
eend $? "$fspath failed to $action"
}
stop_pre()
{
# Do not stop this service as "mount"
if [ "$rc_svcname" = mount ]; then
eerror "The mount service should not be stopped directly"
return 1
fi
return 0
}
stop()
{
yesno $RC_GOINGDOWN || return 0
local mountname=${rc_svcname#*.}
local fspath=${mount_${mountname}_mountpoint}
# make sure fspath is in fstab
if ! fstabinfo -q $fspath; then
einfo "$rc_svcname: $fspath is not in @SYSCONFDIR@/fstab"
return 0
fi
# Is the file system mounted?
mountinfo -q $fspath || return 0
# Flush all pending disk writes now
sync
ebegin "Unmounting $fspath"
do_unmount umount $fspath
eend $? "Unable to umount $fspath"
return 0
}
generate()
{
local fslist="$(fstabinfo)"
local fs fsopts rc=0
local svcpath=${RC_SVCNAME%/*}
ebegin "Generating mount symlinks"
for fs in $fslist; do
case $fs in
/) ;;
/*)
fsopts="$(fstabinfo -o $fs)"
case "$fsopts" in
*noauto*) ;;
*)
local name="${fs#/}"
name="$(echo $name | sed 's#/#.#g')"
einfo ln -snf mount "${svcpath}/${name}"
rc=$?
[ $rc -ne 0 ] && break
*) ;;
esac
*) ;;
esac
done
eend $rc "Failed to generate symlinks for all mounts"
return $rc
}

View File

@@ -14,7 +14,7 @@ name="Console Mouse Daemon"
depend()
{
need mount.usr mount.var
need localmount
after bootmisc
keyword -jail -prefix
}

View File

@@ -7,35 +7,33 @@ description="Update /etc/mtab to match what the kernel knows about"
depend()
{
need root
keyword -prefix -systemd-nspawn
keyword -prefix
}
start()
{
[ -L /etc/mtab ] && return 0
local rc=0
ebegin "Updating /etc/mtab"
if ! checkpath -W /etc; then
rc=1
elif [ ! -e /etc/mtab ]; then
ln -snf /proc/self/mounts /etc/mtab
else
ewarn "The support for updating /etc/mtab as a file is"
ewarn "deprecated and will be removed in the future."
ewarn "Please run the following command as root on your system."
ewarn
ewarn "ln -snf /proc/self/mounts /etc/mtab"
ewarn
# 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~~
if [ -L /etc/mtab ]; then
return 0
fi
eend $rc "/etc is not writable; unable to create /etc/mtab"
return 0
ebegin "Updating /etc/mtab"
vewarn "The support for updating /etc/mtab as a file is"
vewarn "deprecated and will be removed in the future."
vewarn "Please run the following command as root on your system."
vewarn
vewarn "ln -snf /proc/self/mounts /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

@@ -9,7 +9,7 @@ depend()
config /etc/fstab
use afc-client amd nfsclient autofs openvpn
use dns
keyword -jail -prefix -systemd-nspawn -vserver -lxc
keyword -jail -prefix -vserver -lxc
}
start()

View File

@@ -10,7 +10,7 @@ __nl="
depend()
{
need mount.usr mount.var
need localmount
after bootmisc
if [ -n "$(interfaces)" ]; then
provide net

View File

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

View File

@@ -10,7 +10,7 @@ name="Name Service Cache Daemon"
extra_started_commands="flush"
depend() {
need mount.usr mount.var
need localmount
use net dns ldap ypbind
after bootmisc
}

View File

@@ -8,8 +8,8 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend()
{
need mount.usr mount.var
keyword -openvz -prefix -systemd-nspawn -vserver -lxc
need localmount
keyword -openvz -prefix -vserver -lxc
}
_setleds()

View File

@@ -1,12 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2014 Ralph Sennhauser <sera@igentoo.org>
# Released under the 2-clause BSD license.
# Can be used on OSs that take care of the clock.
description="Provides clock"
depend()
{
provide clock
}

View File

@@ -10,7 +10,7 @@ extra_commands="checkconfig showstatus"
extra_started_commands="reload"
depend() {
need mount.usr mount.var
need localmount
keyword -jail -prefix
}

View File

@@ -9,7 +9,7 @@ name="Power Control Daemon"
depend()
{
need mount.usr mount.var
need localmount
use logger
after bootmisc
keyword -jail -prefix

View File

@@ -7,21 +7,67 @@ description="Mounts misc filesystems in /proc."
depend()
{
use modules devfs
need mount.usr mount.var
keyword -openvz -prefix -systemd-nspawn -vserver -lxc
need localmount
keyword -openvz -prefix -vserver -lxc
}
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
if [ -d /proc/sys/fs/binfmt_misc -a ! -e /proc/sys/fs/binfmt_misc/register ]; then
modprobe -q binfmt-misc
if grep -qs binfmt_misc /proc/filesystems; then
ebegin "Mounting misc binary format filesystem"
mount -t binfmt_misc -o nodev,noexec,nosuid \
binfmt_misc /proc/sys/fs/binfmt_misc
if eend $? ; then
local fmts
ebegin "Loading custom binary format handlers"
fmts=$(grep -hsv -e '^[#;]' -e '^[[:space:]]*$' \
/run/binfmt.d/*.conf \
/etc/binfmt.d/*.conf \
""/usr/lib/binfmt.d/*.conf)
if [ -n "${fmts}" ]; then
echo "${fmts}" > /proc/sys/fs/binfmt_misc/register
fi
eend $?
fi
fi
fi
[ "$RC_SYS" = "OPENVZ" ] && return 0
# Check what USB fs the kernel support. Currently
# 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 /sys/fs/selinux ] && ! mountinfo -q /sys/fs/selinux; then
if grep -qs selinuxfs /proc/filesystems; then
ebegin "Mounting SELinux filesystem"
mount -t selinuxfs selinuxfs /sys/fs/selinux
eend $?
fi
fi
return 0
}

View File

@@ -17,7 +17,7 @@ command_background=YES
depend()
{
need mount.usr mount.var
need localmount
after bootmisc
need net
}

View File

@@ -4,7 +4,7 @@
depend()
{
need mount.usr mount.var net
need localmount net
after *
before local
keyword -prefix

View File

@@ -7,7 +7,7 @@ description="Mount the root fs read/write"
depend()
{
need fsck
keyword -jail -openvz -prefix -systemd-nspawn -vserver -lxc
keyword -jail -openvz -prefix -vserver -lxc
}
start()

View File

@@ -9,7 +9,7 @@ name="RPC program number mapper"
depend()
{
provide rpc
need mount.usr mount.var
need localmount
use net logger dns
before inetd xinetd ntpd ntp-client
}

View File

@@ -1,31 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (C) 2015 William Hubbs <w.d.hubbs@gmail.com>
# Released under the 2-clause BSD license.
command=/bin/s6-svscan
command_args="${RC_SVCDIR}"/s6-scan
command_background=yes
pidfile=/var/run/s6-svscan.pid
depend()
{
need mount.usr mount.var
}
start_pre()
{
einfo "Creating s6 scan directory"
checkpath -d -m 0755 "$RC_SVCDIR"/s6-scan
return $?
}
stop_post()
{
ebegin "Stopping any remaining s6 services"
s6-svc -dx "${RC_SVCDIR}"/s6-scan/* 2>/dev/null || true
eend $?
ebegin "Stopping any remaining s6 service loggers"
s6-svc -dx "${RC_SVCDIR}"/s6-scan/*/log 2>/dev/null || true
eend $?
}

View File

@@ -13,8 +13,8 @@ start()
return 1
fi
fi
if ! checkpath -W "$RC_LIBEXECDIR"; then
ewarn "WARNING: ${RC_LIBEXECDIR} is not writable!"
if ! checkpath -W "$RC_LIBEXECDIR"/cache; then
ewarn "WARNING: ${RC_LIBEXECDIR}/cache is not writable!"
if ! yesno "${RC_GOINGDOWN}"; then
ewarn "Unable to save deptree cache"
return 1
@@ -25,12 +25,12 @@ start()
local rc=
if [ ! -d "$RC_LIBEXECDIR"/cache ]; then
rm -rf "$RC_LIBEXECDIR"/cache
if ! mkdir -p "$RC_LIBEXECDIR"/cache; then
if ! mkdir "$RC_LIBEXECDIR"/cache; then
rc=$?
if yesno "${RC_GOINGDOWN}"; then
rc=0
fi
eend $rc "Unable to create $RC_LIBEXECDIR/cache"
eend $rc
return $rc
fi
fi

View File

@@ -6,7 +6,7 @@ description="Saves a kernel dump."
depend()
{
need dumpon mount.usr mount.var
need dumpon localmount
before encswap
keyword -jail -prefix
}
@@ -23,7 +23,7 @@ start()
# Don't quote ${dump_device}, so that if it's unset,
# savecore will check on the partitions listed in fstab
# without errors in the output
savecore -C $dump_device >/dev/null
savecore -C "$dump_dir" $dump_device >/dev/null
else
ls "$dump_dir"/bsd* > /dev/null 2>&1
fi

View File

@@ -4,8 +4,8 @@
depend()
{
before mount.usr mount.var
keyword -jail -openvz -prefix -systemd-nspawn -vserver -lxc
before localmount
keyword -jail -openvz -prefix -vserver -lxc
}
start()

View File

@@ -4,8 +4,8 @@
depend()
{
need mount.usr mount.var
keyword -jail -openvz -prefix -systemd-nspawn -vserver -lxc
need localmount
keyword -jail -openvz -prefix -vserver -lxc
}
start()

View File

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

View File

@@ -3,7 +3,7 @@
# Released under the 2-clause BSD license.
depend() {
need mount.usr mount.var
need localmount
keyword -jail -prefix
}

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/openrc-run
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
#FIXME: Modify for GNU/Hurd

View File

@@ -5,15 +5,12 @@
depend()
{
before bootmisc logger
keyword -prefix -systemd-nspawn -vserver
keyword -prefix -vserver
}
start()
{
local quiet
yesno $rc_verbose || quiet=-q
ebegin "Configuring kernel parameters"
sysctl ${quiet} --system
sysctl --system
eend $? "Unable to configure some kernel parameters"
}

View File

@@ -8,7 +8,7 @@ sysfs_opts=nodev,noexec,nosuid
depend()
{
keyword -lxc -prefix -systemd-nspawn -vserver
keyword -lxc -prefix -vserver
}
mount_sys()
@@ -82,15 +82,6 @@ mount_misc()
fi
fi
# Setup Kernel Support for SELinux
if [ -d /sys/fs/selinux ] && ! mountinfo -q /sys/fs/selinux; then
if grep -qs selinuxfs /proc/filesystems; then
ebegin "Mounting SELinux filesystem"
mount -t selinuxfs selinuxfs /sys/fs/selinux
eend $?
fi
fi
# setup up kernel support for efivarfs
# slightly complicated, as if it's build as a module but NOT yet loaded,
# it will NOT appear in /proc/filesystems yet

View File

@@ -14,7 +14,7 @@ depend()
{
provide logger
use net newsyslog
need mount.usr mount.var
need localmount
after bootmisc
keyword -prefix
}

View File

@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend()
{
keyword -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu
keyword -lxc -openvz -prefix -uml -vserver -xenu
use root
after bootmisc
}

View File

@@ -2,7 +2,7 @@
# Copyright 1999-2012 Gentoo Foundation
# Released under the 2-clause BSD license.
description="Set up tmpfiles.d entries"
description="set up tmpfiles.d entries"
depend()
{
@@ -13,7 +13,7 @@ depend()
start()
{
ebegin "Setting up tmpfiles.d entries for /dev"
ebegin "setting up tmpfiles.d entries for /dev"
@LIBEXECDIR@/sh/tmpfiles.sh --prefix=/dev --create --boot ${tmpfiles_opts}
eend $?
return 0

View File

@@ -2,16 +2,16 @@
# Copyright 1999-2012 Gentoo Foundation
# Released under the 2-clause BSD license.
description="Set up tmpfiles.d entries"
description="set up tmpfiles.d entries"
depend()
{
need mount.usr mount.var
need localmount
}
start()
{
ebegin "Setting up tmpfiles.d entries"
ebegin "setting up tmpfiles.d entries"
@LIBEXECDIR@/sh/tmpfiles.sh --exclude-prefix=/dev --create --remove --boot \
${tmpfiles_opts}
eend $?

View File

@@ -7,8 +7,8 @@ description="Initializes the random number generator."
depend()
{
need mount.usr mount.var
keyword -jail -lxc -openvz -prefix -systemd-nspawn
need localmount
keyword -jail -lxc -openvz -prefix
}
save_seed()

View File

@@ -4,7 +4,7 @@
depend()
{
need mount.usr mount.var
need localmount
keyword -prefix
}

View File

@@ -1,17 +1,9 @@
MK= ../mk
include ${MK}/sys.mk
include ${MK}/os.mk
MAN3= einfo.3 \
rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \
rc_runlevel.3 rc_service.3 rc_stringlist.3
MAN8= rc-service.8 rc-status.8 rc-update.8 openrc.8 openrc-run.8 \
service.8 start-stop-daemon.8
ifeq (${OS},Linux)
MAN8 += rc-sstat.8
endif
# Handy macro to create symlinks
# This does rely on correctly formatting our manpages!
MAKE_LINKS= suffix=$${man\#*.}; \
@@ -24,6 +16,8 @@ MAKE_LINKS= suffix=$${man\#*.}; \
fi; \
done;
MK= ../mk
include ${MK}/sys.mk
include ${MK}/gitignore.mk
all:

View File

@@ -107,19 +107,6 @@ the service has already been stopped.
String describing the service.
.It Ar description_$command
String describing the extra command.
.It Ar supervisor
Supervisor to use to monitor this daemon. If this is unset,
start-stop-daemon will be used. The only alternate supervisor we support
in this release is S6 from Skarnet software. To use this, set
supervisor=s6.
.It Ar s6_service_path
The path to the s6 service directory if you are monitoring this service
with S6. The default is /var/svc.d/${RC_SVCNAME}.
.It Ar s6_svwait_options_start
The options to pass to s6-svwait when starting the service via s6.
.It Ar s6_service_timeout_stop
The amount of time, in milliseconds, s6-svc should wait for the service
to go down when stopping the service. The default is 10000.
.It Ar start_stop_daemon_args
List of arguments passed to start-stop-daemon when starting the daemon.
.It Ar command
@@ -127,8 +114,7 @@ Daemon to start or stop via
.Nm start-stop-daemon
if no start or stop function is defined by the service.
.It Ar command_args
List of arguments to pass to the daemon when starting via
.Nm start-stop-daemon .
List of arguments to pass to the daemon when starting.
.It Ar command_background
Set this to "true", "yes" or "1" (case-insensitive) to force the daemon into
the background. This implies the "--make-pidfile" and "--pidfile" option of
@@ -141,8 +127,6 @@ will chroot into this path before writing the pid file or starting the daemon.
Pidfile to use for the above defined command.
.It Ar name
Display name used for the above defined command.
.It Ar stopsig
Signal to send when stopping the daemon.
.It Ar retry
Retry schedule to use when stopping the daemon. It can either be a
timeout in seconds or multiple signal/timeout pairs (like SIGTERM/5).
@@ -487,8 +471,8 @@ _need_dbus()
depend()
{
# We write a pidfile and to /var/cache, so we need mount.var.
need mount.var
# We write a pidfile and to /var/cache, so we need localmount.
need localmount
# We can optionally use the network, but it's not essential.
use net
# We should be after bootmisc so that /var/run is cleaned before

View File

@@ -1,46 +0,0 @@
.\" Copyright (c) 2015 William Hubbs
.\"
.\" 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 AUTHOR 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 AUTHOR 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.
.\"
.Dd April 24, 2008
.Dt RC-sstat 8 SMM
.Os OpenRC
.Sh NAME
.Nm rc-sstat
.Nd show status info about services supervised by s6 then rc-status
info
.Sh SYNOPSIS
.Nm
.Sh DESCRIPTION
.Nm
gathers and displays information about the status of services supervised
by s6 then runs rc-status to show info about nnormal OpenRC services.
.Pp
.Sh EXIT STATUS
.Nm
exits 1 if there is an internal error or exits with the same exit codes
as rc-status.
.Sh SEE ALSO
.Xr rc-status 8 ,
.Xr rc-update 8
.Sh AUTHORS
.An William Hubbs <w.d.hubbs@gmail.com>

View File

@@ -87,7 +87,7 @@ If the
.Fl s , -stack
option is given then we either add or remove the runlevel from the runlevel.
This allows inheritance of runlevels.
.Pp
If the
.Fl a, -all
option is given, we remove the service from all runlevels. This is

View File

@@ -6,7 +6,7 @@ IGNOREFILES+= .depend
.depend: ${SRCS}
rm -f .depend
${CC} ${LOCAL_CPPFLAGS} ${CPPFLAGS} -MM ${SRCS} > .depend
${CC} ${CPPFLAGS} -MM ${SRCS} > .depend
depend: .depend extra_depend

View File

@@ -2,7 +2,7 @@
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
GITREF?= ${VERSION}
GITREF?= HEAD
DISTPREFIX?= ${NAME}-${VERSION}
DISTFILE?= ${DISTPREFIX}.tar.bz2
@@ -17,7 +17,7 @@ SNAPDIR= ${DISTPREFIX}-${SNAP}
SNAPFILE= ${SNAPDIR}.tar.bz2
changelog:
git log ${CHANGELOG_LIMIT} --format=full > ChangeLog
git log ${CHANGELOG_LIMIT} --format=medium > ChangeLog
dist:
git archive --prefix=${DISTPREFIX}/ ${GITREF} | bzip2 > ${DISTFILE}
@@ -34,7 +34,7 @@ snapshot:
mkdir /tmp/${SNAPDIR}
cp -RPp * /tmp/${SNAPDIR}
(cd /tmp/${SNAPDIR}; make clean)
rm -rf /tmp/${SNAPDIR}/.git 2>/dev/null || true
find /tmp/${SNAPDIR} -name .svn -exec rm -rf -- {} \; 2>/dev/null || true
tar -cvjpf ${SNAPFILE} -C /tmp ${SNAPDIR}
rm -rf /tmp/${SNAPDIR}
ls -l ${SNAPFILE}

View File

@@ -21,10 +21,10 @@ _LIBS+= ${SHLIB_NAME}
CLEANFILES+= ${OBJS} ${SOBJS} ${_LIBS} ${SHLIB_LINK}
%.o: %.c
${CC} ${LOCAL_CFLAGS} ${LOCAL_CPPFLAGS} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
%.So: %.c
${CC} ${PICFLAG} -DPIC ${LOCAL_CFLAGS} ${LOCAL_CPPFLAGS} ${CPPFLAGS} ${CFLAGS} -c $< -o $@
${CC} ${PICFLAG} -DPIC ${CPPFLAGS} ${CFLAGS} -c $< -o $@
all: depend ${_LIBS}
@@ -40,7 +40,7 @@ ${SHLIB_NAME}: ${SOBJS}
@${ECHO} building shared library $@
@rm -f $@ ${SHLIB_LINK}
@ln -fs $@ ${SHLIB_LINK}
${CC} ${LOCAL_CFLAGS} ${CFLAGS} ${LOCAL_LDFLAGS} ${LDFLAGS} -shared -Wl,-x \
${CC} ${CFLAGS} ${LDFLAGS} -shared -Wl,-x \
-o $@ -Wl,-soname,${SONAME} \
${SOBJS} ${LDADD}

View File

@@ -4,5 +4,5 @@
SFX= .GNU.in
PKG_PREFIX?= /usr
CPPFLAGS+= -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -DMAXPATHLEN=4096 -DPATH_MAX=4096
CPPFLAGS+= -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -DMAXPATHLEN=4096 -DMAX_PATH=4096
LIBDL= -Wl,-Bdynamic -ldl

View File

@@ -4,24 +4,11 @@
SFX= .Linux.in
PKG_PREFIX?= /usr
CPPFLAGS+= -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700
CPPFLAGS+= -D_BSD_SOURCE -D_XOPEN_SOURCE=700
LIBDL= -Wl,-Bdynamic -ldl
ifeq (${MKSELINUX},yes)
CPPFLAGS+= -DHAVE_SELINUX
LIBSELINUX?= -lselinux
LIBSELINUX= -lselinux
LDADD += $(LIBSELINUX)
ifneq (${MKPAM},pam)
# if using selinux but not pam then we need crypt
LIBCRYPT?= -lcrypt
LDADD += $(LIBCRYPT)
endif
endif
ifeq (${MKAUDIT},yes)
LIBAUDIT?= -laudit
CPPFLAGS+= -DHAVE_AUDIT
LDADD+= ${LIBAUDIT}
endif

View File

@@ -3,12 +3,6 @@ LIBPAM?= -lpam
CPPFLAGS+= -DHAVE_PAM
LDADD+= ${LIBPAM}
ifeq (${MKSELINUX},yes)
# with selinux, pam_misc is needed too
LIBPAM_MISC?= -lpam_misc
LDADD+= ${LIBPAM_MISC}
endif
PAMDIR?= /etc/pam.d
PAMMODE?= 0644
else ifneq (${MKPAM},)

View File

@@ -1,4 +1,4 @@
# rules to build a program
# rules to build a library
# based on FreeBSD's bsd.prog.mk
# Copyright (c) 2008 Roy Marples <roy@marples.name>
@@ -25,10 +25,10 @@ CLEANFILES+= ${OBJS} ${PROG}
all: depend ${PROG}
%.o: %.c
${CC} ${LOCAL_CFLAGS} ${LOCAL_CPPFLAGS} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
${PROG}: ${SCRIPTS} ${OBJS}
${CC} ${LOCAL_CFLAGS} ${LOCAL_LDFLAGS} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${LDADD}
${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${LDADD}
clean:
rm -f ${CLEANFILES}

View File

@@ -1,46 +0,0 @@
# New Mount Service
This is definitely considered testing code, so if you use it on your
system and it breaks, you have been warned.
This document will evolve as the testing proceeds and will be removed
once the script goes mainline.
Since this is on a topic branch, this branch will be subject to
rebasing, merging commits, etc. When it goes to master, everything here
will be in one commit.
The goal of this is to replace the localmount and metmount services with
a single mount service which will be multiplexed so that there is one
service for each file system that will be mounted.
- rc-service mount generate
scans your fstab and attempts to generate symbolic links in /etc/init.d
for each file system you want to mount.
Then you must edit /etc/conf.d/mount to list all of your file systems
and the dependencies they have by using
rc_mount_foo_before/after/need/use settings.
rc-service mount.foo start
tries to mount a file system and
rc-service mount.foo stop
tries to unmount it if your system is going down.
I'm considering automating the generation of symlinks into the boot
process, but I'm not sure yet whether this is a good idea.
I haven't decided yet exactly how I want to handle the transition from
localmount/netmount to this new mount service yet, so you will
definitely not have a clean boot if you try to boot with this.
Another question is whether I want to try automating adding the mount
services to runlevels; I think no, but let me know if you feel
differently.
Any suggestions would be helpful.

View File

@@ -34,8 +34,7 @@ BOOT-FreeBSD+= hostid newsyslog savecore syslogd
# FreeBSD specific stuff
BOOT-FreeBSD+= adjkerntz dumpon syscons
BOOT-Linux+= binfmt hwclock keymaps modules mtab procfs termencoding \
tmpfiles.setup
BOOT-Linux+= hwclock keymaps modules mtab procfs termencoding tmpfiles.setup
SHUTDOWN-Linux= killprocs mount-ro
SYSINIT-Linux= devfs dmesg sysfs tmpfiles.dev

View File

@@ -1,48 +0,0 @@
# Using S6 with OpenRC
Beginning with OpenRC-0.16, we support using the s6 supervision suite
from Skarmet Software in place of start-stop-daemon for monitoring
daemons [1].
## Setup
Documenting s6 in detail is beyond the scope of this guide. It will
document how to set up OpenRC services to communicate with s6.
### Use Default start, stop and status functions
If you write your own start, stop and status functions in your service
script, none of this will work. You must allow OpenRC to use the default
functions.
### Dependencies
All OpenRC service scripts that want their daemons monitored by s6
should have the following line added to their dependencies to make sure
the s6 scan directory is being monitored.
need s6-svscan
### Variable Settings
The most important setting is the supervisor variable. At the top of
your service script, you should set this variable as follows:
supervisor=s6
Several other variables affect s6 services. They are documented on the
openrc-run man page, but I will list them here for convenience:
s6_service_path - the path to the s6 service directory. The default is
/var/svc.d/$RC_SVCNAME.
s6_svwait_options_start - the options to pass to s6-svwait when starting
the service. If this is not set, s6-svwait will not be called.
s6_service_timeout_stop - the amount of time, in milliseconds, s6-svc
should wait for a service to go down when stopping.
This is very early support, so feel free to file bugs if you have
issues.
[1] http://www.skarnet.org/software/s6

1
scripts/.gitignore vendored
View File

@@ -1 +0,0 @@
rc-sstat

View File

@@ -1,19 +1,5 @@
MK= ../mk
include ${MK}/os.mk
DIR= ${LIBEXECDIR}/bin
BIN= on_ac_power
INSTALLAFTER = _installafter
ifeq (${OS},Linux)
SRCS+= rc-sstat.in
BIN+= rc-sstat
endif
_installafter:
ifeq (${OS},Linux)
${INSTALL} -d ${DESTDIR}${SBINDIR}
ln -s ${DIR}/rc-sstat ${DESTDIR}/${SBINDIR}/rc-sstat
endif
MK= ../mk
include ${MK}/scripts.mk

View File

@@ -1,140 +0,0 @@
#!@SHELL@
# Define variables
scandir="/run/openrc/s6-scan"
statfile=/dev/shm/s6-svstat.${USER}
color_red='\E[01;31m'
color_green='\E[32m'
color_yellow='\E[01;33m'
# Time Modules
uptimeModules() {
# Given a single integer argument representing seconds of uptime...
# convert uptime to a friendly human readable string: '2d 16h 58m 46s'
# define a variable to keep track of the longest length uptime string
uSec=${1:-0}
uDay=$(( $uSec / 86400 ))
uSec=$(( $uSec % 86400 ))
uHour=$(( $uSec / 3600 ))
uSec=$(( $uSec % 3600 ))
uMin=$(( $uSec / 60 ))
uSec=$(( $uSec % 60 ))
[ $uDay -ne 0 ] && pDay="${uDay}d " || pDay=""
[ $uHour -ne 0 ] && pHour="${uHour}h " || pHour=""
[ $uMin -ne 0 ] && pMin="${uMin}m " || pMin=""
[ $uSec -ne 0 ] && pSec="${uSec}s " || pSec=""
parsedUptime="$( echo ${pDay}${pHour}${pMin}${pSec} | sed 's#[ \t]*$##' )"
uCharCount=${#parsedUptime}
}
# Make sure we are running as root
if [ $(id -u) != 0 ]; then
printf "This command must be run as root\n"
exit 1
fi
# Make sure scandir exists
if [ ! -d $scandir ]; then
printf "%s\n" "$scandir does not exist"
exit 1
fi
# Make sure s6-svscan is running
if ! pgrep s6-svscan >/dev/null ; then
printf "s6-svscan is not running\n"
exit 1
fi
# If TERM is undefined (launching sstat through an ssh command) then make it vt100
if [ -z $TERM -o $TERM = "dumb" ]; then
export TERM=vt100
fi
# Gather list of candidate services s6-supervise may be supervising
# filter for folders and symlinks at /run/openrc/s6-scan/* ommiting output starting with '.'
services="$(find $scandir -maxdepth 1 -mindepth 1 \( -type d -or -type l \) | awk -F'/' '{ if ( $NF !~ "^\\." ) print $NF}')"
if [ -z "$services" ]; then
printf "s6 found no services configured for supervision\n"
exit 1
fi
# Gather status for each service from s6-svstat
# write to tmp file in memory for non I/O bound repeatative access
rm -f $statfile 2>/dev/null
for service in $services ; do
echo "$service $(s6-svstat ${scandir}/${service})" >> $statfile
done
# Define longest string from parsed uptime (default to 7 to match string length of 'Up Time')
timeStringLength=7
for uptime in $(awk '$2 == "up" {print $5}' $statfile | sort -run)
do
uptimeModules $uptime
[ ${uCharCount} -gt $timeStringLength ] && timeStringLength=$uCharCount
done
# Print the status header like so...
# Service Name State PID Up Time Start Time
#---------------------------- ----- ----- -------------- -------------------
printf "\n"
printf "%28s %5s %5s %${timeStringLength}s %19s\n" "Service Name" "State" "PID" "Up Time" "Start Time"
for dashes in 28 5 5 $timeStringLength 19 ; do
printf "%0.s-" $(seq 1 $dashes) ; echo -n ' '
done && printf "\n"
# sshd up (pid 26300) 80373 seconds
cat $statfile | \
while read line
do
set $line
service=$1
state=$2
pid=${4/)/}
time=$5
# call function to convert time in seconds and define additional variables
uptimeModules $time
if [ "$state" = up ]; then
if [ $time -lt 30 ]; then
# uptime < 30 seconds, color the whole line yellow
echo -en "$color_yellow"
# 1st 4 columns are printed with printf for space padding
printf "%28s %5s %5s %${timeStringLength}s" $service $state $pid "$parsedUptime"
# 4th column is output from date -d
echo -e " $(date -d "${time} seconds ago" "+%F %T")"
# reset terminal colors
tput sgr0
else
printf "%28s" $service
# uptime > 30 seconds, color just the "state" value green
echo -en "$color_green"
printf " %5s" $state
# reset terminal colors
tput sgr0
printf " %5s" $pid
printf " %${timeStringLength}s" "$parsedUptime"
echo -e " $(date -d "${time} seconds ago" "+%F %T")"
fi
else
printf "%28s" $service
echo -en "$color_red"
printf " %5s" $state
tput sgr0
echo ""
fi
done
# Cleanup
rm -f $statfile 2>/dev/null
printf "\n\n"
rc-status

3
sh/.gitignore vendored
View File

@@ -1,11 +1,10 @@
functions.sh
gendepends.sh
rc-functions.sh
openrc-run.sh
runscript.sh
cgroup-release-agent.sh
init.sh
init-early.sh
rc-cgroup.sh
tmpfiles.sh
migrate-to-run.sh
binfmt.sh

View File

@@ -1,8 +1,8 @@
DIR= ${LIBEXECDIR}/sh
SRCS= init.sh.in functions.sh.in gendepends.sh.in \
openrc-run.sh.in rc-functions.sh.in tmpfiles.sh.in ${SRCS-${OS}}
INC= rc-mount.sh functions.sh rc-functions.sh s6.sh start-stop-daemon.sh
BIN= gendepends.sh init.sh openrc-run.sh tmpfiles.sh ${BIN-${OS}}
rc-functions.sh.in runscript.sh.in tmpfiles.sh.in ${SRCS-${OS}}
INC= rc-mount.sh functions.sh rc-functions.sh
BIN= gendepends.sh init.sh runscript.sh tmpfiles.sh ${BIN-${OS}}
INSTALLAFTER= _installafter
@@ -12,9 +12,9 @@ include ${MK}/os.mk
SRCS-FreeBSD=
BIN-FreeBSD=
SRCS-Linux= binfmt.sh.in cgroup-release-agent.sh.in init-early.sh.in \
migrate-to-run.sh.in rc-cgroup.sh.in
BIN-Linux= binfmt.sh cgroup-release-agent.sh init-early.sh migrate-to-run.sh \
SRCS-Linux= cgroup-release-agent.sh.in init-early.sh.in migrate-to-run.sh.in \
rc-cgroup.sh.in
BIN-Linux= cgroup-release-agent.sh init-early.sh migrate-to-run.sh \
rc-cgroup.sh
SRCS-NetBSD=

View File

@@ -1,85 +0,0 @@
#!@SHELL@
# This is a reimplementation of the systemd binfmt.d code to register
# misc binary formats with the kernel.
#
# Copyright (c) 2015 William Hubbs <w.d.hubbs@gmail.com>
# Released under the 2-clause BSD license.
#
# See the binfmt.d manpage as well:
# http://0pointer.de/public/systemd-man/binfmt.d.html
# This script should match the manpage as of 2015/03/31
#
apply_file() {
[ $# -lt 1 ] && return 0
FILE="$1"
LINENUM=0
### FILE FORMAT ###
# See https://www.kernel.org/doc/Documentation/binfmt_misc.txt
while read line; do
LINENUM=$(( LINENUM+1 ))
case $line in
\#*) continue ;;
\;*) continue ;;
esac
echo "${line}" > /proc/sys/fs/binfmt_misc/register
rc=$?
if [ $rc -ne 0 ]; then
printf "binfmt: invalid entry on line %d of \`%s'\n" \
"$LINENUM" "$FILE" >&2
error=1
fi
done <$FILE
return $rc
}
[ -e /proc/sys/fs/binfmt_misc/register ] || exit 0
error=0
if [ $# -gt 0 ]; then
while [ $# -gt 0 ]; do
apply_file "$1"
shift
done
else
# The hardcoding of these paths is intentional; we are following the
# systemd spec.
binfmt_dirs='/usr/lib/binfmt.d/ /run/binfmt.d/ /etc/binfmt.d/'
binfmt_basenames=''
binfmt_d=''
# Build a list of sorted unique basenames
# directories declared later in the binfmt_d list will override earlier
# directories, on a per file basename basis.
# `/run/binfmt.d/foo.conf' supersedes `/usr/lib/binfmt.d/foo.conf'.
# `/run/binfmt.d/foo.conf' will always be read after `/etc/binfmt.d/bar.conf'
for d in ${binfmt_dirs} ; do
[ -d $d ] && for f in ${d}/*.conf ; do
case "${f##*/}" in
systemd.conf|systemd-*.conf) continue;;
esac
[ -e $f ] && binfmt_basenames="${binfmt_basenames}\n${f##*/}"
done # for f in ${d}
done # for d in ${binfmt_dirs}
binfmt_basenames="$(printf "${binfmt_basenames}\n" | sort -u )"
for b in $binfmt_basenames ; do
real_f=''
for d in $binfmt_dirs ; do
f=${d}/${b}
[ -e "${f}" ] && real_f=$f
done
[ -e "${real_f}" ] && binfmt_d="${binfmt_d} ${real_f}"
done
# loop through the gathered fragments, sorted globally by filename.
# `/run/binfmt.d/foo.conf' will always be read after `/etc/binfmt.d/bar.conf'
for FILE in $binfmt_d ; do
apply_file "$FILE"
done
fi
exit $error
# vim: set ts=2 sw=2 sts=2 noet ft=sh:

View File

@@ -1,7 +1,6 @@
#!@SHELL@
# Copyright (c) 2012 Alexander Vershilov <qnikst@gentoo.org>
# Released under the 2-clause BSD license.
extra_stopped_commands="${extra_stopped_commands} cgroup_cleanup"
description_cgroup_cleanup="Kill all processes in the cgroup"
@@ -48,7 +47,7 @@ cgroup_set_values()
$controller.*)
if [ -n "$name" -a -f "$cgroup/$name" -a -n "$val" ]; then
veinfo "$RC_SVCNAME: Setting $cgroup/$name to $val"
printf "%s" "$val" > "$cgroup/$name"
echo $val > "$cgroup/$name"
fi
name=$1
val=
@@ -61,12 +60,12 @@ cgroup_set_values()
done
if [ -n "$name" -a -f "$cgroup/$name" -a -n "$val" ]; then
veinfo "$RC_SVCNAME: Setting $cgroup/$name to $val"
printf "%s" "$val" > "$cgroup/$name"
echo $val > "$cgroup/$name"
fi
if [ -f "$cgroup/tasks" ]; then
veinfo "$RC_SVCNAME: adding to $cgroup/tasks"
printf "%d" 0 > "$cgroup/tasks"
echo 0 > "$cgroup/tasks"
fi
return 0
@@ -79,14 +78,14 @@ cgroup_add_service()
# cgroups. But may lead to a problems where that inheriting
# is needed.
for d in /sys/fs/cgroup/* ; do
[ -f "${d}"/tasks ] && printf "%d" 0 > "${d}"/tasks
[ -f "${d}"/tasks ] && echo 0 > "${d}"/tasks
done
openrc_cgroup=/sys/fs/cgroup/openrc
if [ -d "$openrc_cgroup" ]; then
cgroup="$openrc_cgroup/$RC_SVCNAME"
mkdir -p "$cgroup"
[ -f "$cgroup/tasks" ] && printf "%d" 0 > "$cgroup/tasks"
[ -f "$cgroup/tasks" ] && echo 0 > "$cgroup/tasks"
fi
}

View File

@@ -85,7 +85,7 @@ get_bootparam()
return 1
}
# Called from openrc-run.sh or gendepends.sh
# Called from runscript.sh or gendepends.sh
_depend() {
depend
local _rc_svcname=$(shell_var "$RC_SVCNAME") _deptype= _depends=

View File

@@ -1,5 +1,5 @@
#!@SHELL@
# Shell wrapper for openrc-run
# Shell wrapper for runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -34,10 +34,7 @@ sourcex()
sourcex "@LIBEXECDIR@/sh/functions.sh"
sourcex "@LIBEXECDIR@/sh/rc-functions.sh"
case $RC_SYS in
PREFIX|SYSTEMD-NSPAWN) ;;
*) sourcex -e "@LIBEXECDIR@/sh/rc-cgroup.sh";;
esac
[ "$RC_SYS" != "PREFIX" ] && sourcex -e "@LIBEXECDIR@/sh/rc-cgroup.sh"
# Support LiveCD foo
if sourcex -e "/sbin/livecd-functions.sh"; then
@@ -126,45 +123,76 @@ _status()
}
# Template start / stop / status functions
# These functions select the appropriate function to call from the
# supervisor modules
start()
{
local func=ssd_start
case "$supervisor" in
s6) func=s6_start ;;
?*)
ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon"
;;
esac
$func
[ -n "$command" ] || return 0
local _background=
ebegin "Starting ${name:-$RC_SVCNAME}"
if yesno "${command_background}"; then
if [ -z "${pidfile}" ]; then
eend 1 "command_background option used but no pidfile specified"
return 1
fi
_background="--background --make-pidfile"
fi
if yesno "$start_inactive"; then
local _inactive=false
service_inactive && _inactive=true
mark_service_inactive
fi
eval start-stop-daemon --start \
--exec $command \
${chroot:+--chroot} $chroot \
${procname:+--name} $procname \
${pidfile:+--pidfile} $pidfile \
$_background $start_stop_daemon_args \
-- $command_args
if eend $? "Failed to start $RC_SVCNAME"; then
service_set_value "command" "${command}"
[ -n "${chroot}" ] && service_set_value "chroot" "${chroot}"
[ -n "${pidfile}" ] && service_set_value "pidfile" "${pidfile}"
[ -n "${procname}" ] && service_set_value "procname" "${procname}"
return 0
fi
if yesno "$start_inactive"; then
if ! $_inactive; then
mark_service_stopped
fi
fi
return 1
}
stop()
{
local func=ssd_stop
case "$supervisor" in
s6) func=s6_stop ;;
?*)
ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon"
;;
esac
$func
local startcommand="$(service_get_value "command")"
local startchroot="$(service_get_value "chroot")"
local startpidfile="$(service_get_value "pidfile")"
local startprocname="$(service_get_value "procname")"
command="${startcommand:-$command}"
chroot="${startchroot:-$chroot}"
pidfile="${startpidfile:-$pidfile}"
procname="${startprocname:-$procname}"
[ -n "$command" -o -n "$procname" -o -n "$pidfile" ] || return 0
ebegin "Stopping ${name:-$RC_SVCNAME}"
start-stop-daemon --stop \
${retry:+--retry} $retry \
${command:+--exec} $command \
${procname:+--name} $procname \
${pidfile:+--pidfile} $chroot$pidfile \
${stopsig:+--signal} $stopsig
eend $? "Failed to stop $RC_SVCNAME"
}
status()
{
local func=ssd_status
case "$supervisor" in
s6) func=s6_status ;;
?*)
ewarn "Invalid supervisor, \"$supervisor\", using start-stop-daemon"
;;
esac
$func
_status
}
yesno $RC_DEBUG && set -x
if yesno "${rc_verbose:-$RC_VERBOSE}"; then
EINFO_VERBOSE=yes
export EINFO_VERBOSE
fi
_conf_d=${RC_SERVICE%/*}/../conf.d
# If we're net.eth0 or openvpn.work then load net or openvpn config
@@ -185,16 +213,6 @@ unset _conf_d
# Load any system overrides
sourcex -e "@SYSCONFDIR@/rc.conf"
# load service supervisor functions
sourcex "@LIBEXECDIR@/sh/s6.sh"
sourcex "@LIBEXECDIR@/sh/start-stop-daemon.sh"
# Set verbose mode
if yesno "${rc_verbose:-$RC_VERBOSE}"; then
EINFO_VERBOSE=yes
export EINFO_VERBOSE
fi
for _cmd; do
if [ "$_cmd" != status -a "$_cmd" != describe ]; then
# Apply any ulimit defined

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