Compare commits

..

22 Commits

Author SHA1 Message Date
William Hubbs
fc35eb90ca Update ChangeLog 2017-10-27 19:28:31 -05:00
William Hubbs
b18be3f970 supervise-daemon: use RC_SVCNAME as the first argument to the daemon
This makes ps show which service the supervisor is monitoring.
2017-10-27 19:25:40 -05:00
William Hubbs
027438f775 supervise-daemon: fix logging for reexec and the child command line 2017-10-27 17:36:56 -05:00
William Hubbs
93e159ae85 log as supervise-daemon not the service 2017-10-27 15:32:26 -05:00
William Hubbs
bcfcf50562 version 0.34.4 2017-10-27 10:46:46 -05:00
William Hubbs
d0097cc10f Update ChangeLog 2017-10-26 14:16:36 -05:00
William Hubbs
eecf868e3c supervise-daemon: clarify a log message 2017-10-26 14:15:40 -05:00
William Hubbs
a5cd486a7f Update ChangeLog 2017-10-26 14:03:55 -05:00
William Hubbs
6e6b4ac5fa supervise-daemon: log the command line we run to spawn the child process 2017-10-26 14:01:07 -05:00
William Hubbs
558ff4d5fb supervise-daemon: log with the service name instead of "supervise-daemon" 2017-10-26 14:01:07 -05:00
William Hubbs
490f855aef implement "unsupervised" status
The unsupervised status is to be used when a supervisor of a supervised
service dies but leaves the service daemon itself running.
2017-10-26 13:18:16 -05:00
William Hubbs
d1491e201d supervise-daemon: remove child_pid from saved options during shutdown
This allows us to detect when the supervisor dies unexpectedly because
in that case child_pid will still exist.
2017-10-26 13:18:16 -05:00
William Hubbs
3231af9375 rc_service_value_set: remove the option if NULL is the value
This allows the equivalent of "unsetting" a value for a service.
2017-10-26 13:18:16 -05:00
William Hubbs
a5758e7aef supervise-daemon.sh: fix status function with no namespaces 2017-10-26 13:18:16 -05:00
Patrick McLean
61a9393ce1 cgroups_cleanup: clean up shutdown signaling
- do not sleep for the full 90 seconds if processes are dead
- re-arrange the order of signals we attempt to send to the processes
2017-10-26 13:18:16 -05:00
William Hubbs
161d22cb07 version 0.34.3 2017-10-26 13:17:54 -05:00
William Hubbs
3a96ca1c96 Update ChangeLog 2017-10-25 15:15:53 -05:00
William Hubbs
934530914b add "unsupervised" status and return code 64 to supervise-daemon status function
This is to be used if the service is being supervised and the
supervisor is somehow killed.

Currently, this is very linux specific, but I will expand to other
platforms, patches are welcome.
2017-10-25 15:14:33 -05:00
William Hubbs
b717625cd2 version 0.34.2 2017-10-25 15:13:09 -05:00
William Hubbs
b475396134 Update ChangeLog 2017-10-24 17:02:45 -05:00
William Hubbs
e7b1d898ca supervise-daemon: fix build issue for >=glibc-2.26
X-Gentoo-Bug: 635334
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=635334
2017-10-24 17:02:14 -05:00
William Hubbs
5cd09a6f44 version 0.34.1 2017-10-24 17:00:57 -05:00
361 changed files with 6244 additions and 8176 deletions

View File

@@ -1,15 +0,0 @@
# Cirrus CI integration
# https://cirrus-ci.org
test_task:
freebsd_instance:
matrix:
image: freebsd-13-1-release-amd64
image: freebsd-12-4-release-amd64
env:
OS: FreeBSD
procfs_script: >
[ -f /proc/curproc ] || mount -t procfs proc /proc
pkg_install_script: pkg install -y bash gawk gsed meson
gsed_hack_script: rm /usr/bin/sed && ln -s /usr/local/bin/gsed /usr/bin/sed
test_script: bash ci/cirrus.sh

View File

@@ -1,2 +0,0 @@
CompileFlags:
CompilationDatabase: builddir/

View File

@@ -1,31 +0,0 @@
name: ci_alpine_linux
on: [push, pull_request]
jobs:
alpine:
name: Alpine Linux
runs-on: ubuntu-latest
container: alpine:latest
strategy:
fail-fast: false
matrix:
compiler:
- gcc
env:
CC: ${{ matrix.compiler }}
steps:
- run: >-
apk --no-cache add \
build-base \
meson \
pkgconf \
linux-pam \
linux-pam-dev \
libcap \
libcap-dev
- uses: actions/checkout@v2
- run: meson setup builddir/
- run: meson compile -C builddir
- run: meson test --verbose -C builddir

View File

@@ -1,24 +0,0 @@
name: ci_ubuntu
on: [push, pull_request]
jobs:
ubuntu:
name: Ubuntu
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler:
- gcc
- clang
env:
CC: ${{ matrix.compiler }}
steps:
- uses: actions/checkout@v2
- run: sudo apt-get update -q
- run: sudo apt-get install -q -y build-essential libpam-dev meson libcap-dev ${CC}
- run: meson setup builddir/
- run: ninja -C builddir
- run: ninja test --verbose -C builddir

View File

@@ -1,25 +0,0 @@
# GitHub actions workflow.
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
# https://scan.coverity.com/projects/openrc-openrc
name: Coverity Scan
on:
push:
branches: [master]
jobs:
coverity:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: sudo apt-get update -q
- run: sudo apt-get install -q -y build-essential libpam-dev meson libcap-dev
- run: meson setup builddir/
env:
CC: gcc
- uses: vapier/coverity-scan-action@v1
with:
command: ninja -C builddir
email: ${{ secrets.COVERITY_SCAN_EMAIL }}
token: ${{ secrets.COVERITY_SCAN_TOKEN }}

6
.gitignore vendored
View File

@@ -9,4 +9,8 @@ core
.gdb_history .gdb_history
.gdbinit .gdbinit
build .depend
*.a
*.o
*.So
lib*.so

View File

@@ -1,32 +0,0 @@
# Travis build integration.
# https://docs.travis-ci.com/
language: c
os:
- linux
compiler:
- gcc
- clang
- musl-gcc
addons:
apt:
packages:
- musl-tools
notifications:
irc:
channels:
- "irc.libera.chat#openrc"
on_success: always # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: false # default: false
before_install:
- sudo apt-get update
- sudo apt-get install -y shellcheck
script:
- ./ci/travis.sh

View File

@@ -43,7 +43,6 @@ Ian Stakenvicius <axs@gentoo.org>
Jakob Drexel <jake42@rommel.stw.uni-erlangen.de> Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
James Le Cuirot <chewi@aura-online.co.uk> James Le Cuirot <chewi@aura-online.co.uk>
Jan Psota <jasiu@belsznica.pl> Jan Psota <jasiu@belsznica.pl>
Jason A. Donenfeld <Jason@zx2c4.com>
Jason Zaman <jason@perfinion.com> Jason Zaman <jason@perfinion.com>
Joe Harvell <jharvell@dogpad.net> Joe Harvell <jharvell@dogpad.net>
Joe M <joe9mail@gmail.com> Joe M <joe9mail@gmail.com>
@@ -83,7 +82,6 @@ Semen Maryasin <marsoft@ya.ru>
Sergei Trofimovich <slyfox@gentoo.org> Sergei Trofimovich <slyfox@gentoo.org>
Seth Robertson <in-gentoo@baka.org> Seth Robertson <in-gentoo@baka.org>
S. Gilles <sgilles@umd.edu> S. Gilles <sgilles@umd.edu>
Sony Interactive Entertainment, llc.
Stefan Knoblich <s.knoblich@axsentis.de> Stefan Knoblich <s.knoblich@axsentis.de>
Stef Simoens <stef.simoens@scarlet.be> Stef Simoens <stef.simoens@scarlet.be>
Steve L <slong@rathaus.eclipse.co.uk> Steve L <slong@rathaus.eclipse.co.uk>

View File

@@ -1,5 +1,4 @@
Using Busybox as your Default Shell with OpenRC # Using Busybox as your Default Shell with OpenRC
===============================================
If you have/bin/sh linked to busybox, you need to be aware of several If you have/bin/sh linked to busybox, you need to be aware of several
incompatibilities between busybox's applets and the standalone incompatibilities between busybox's applets and the standalone

View File

@@ -1,142 +0,0 @@
# OpenRC Code of Conduct
This code of conduct outlines our expectations for participants within the
community, as well as steps for reporting unacceptable behavior. We are
committed to providing a welcoming and inspiring community for all and
expect our code of conduct to be honored. Anyone who violates this code
of conduct may be banned from the community.
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement via integrated
"Report Content" functionality.
See the GitHub documentation for more details:
https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

1604
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,11 @@
Features Scheduled for Removal # Features Scheduled for Removal
==============================
The following is a list of files and features that are going to be removed in 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 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 is happening, and who is going to be doing the work. When the feature is
removed, it should also be removed from this file. removed, it should also be removed from this file.
# Service pause action ## Service pause action
When: 1.0 When: 1.0
@@ -14,7 +13,7 @@ Why: The same affect can be obtained with the --nodeps option to stop.
Who: Who:
# start-stop-daemon options --startas, --chuid , --oknodo ## start-stop-daemon options --startas, --chuid , --oknodo
When: 1.0 When: 1.0
@@ -26,7 +25,7 @@ Why: Obsolete or replaced by other options.
Who: Who:
# runscript and rc symbolic links ## runscript and rc symbolic links
When: 1.0 When: 1.0
@@ -35,7 +34,7 @@ Why: Deprecated in favor of openrc-run and openrc due to naming
Who: Who:
# support for the opts variable in service scripts ## support for the opts variable in service scripts
When: 1.0 When: 1.0
@@ -44,7 +43,7 @@ Why: Deprecated in favor of extra_commands, extra_started_commands
Who: Who:
# support for local_start and local_stop ## support for local_start and local_stop
When: 1.0 When: 1.0
@@ -52,7 +51,7 @@ Why: Deprecated in favor of executable scripts in @SYSCONFDIR@/local.d
Who: Who:
# the mtab service script ## the mtab service script
When: force /etc/mtab to link to /proc/self/mounts in 1.0, remove When: force /etc/mtab to link to /proc/self/mounts in 1.0, remove
service in 2.0 service in 2.0
@@ -62,13 +61,13 @@ Why: /etc/mtab should be a symbolic link to /proc/self/mounts on modern
Who: Who:
# C API Functions in rc.h ## C API Functions in rc.h
If you have a c program that links to librc and uses functions from 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 there, this section will list API functions which are deprecated and
will be removed along with the reason they are being removed. will be removed along with the reason they are being removed.
## rc_getline() ### rc_getline()
When: 1.0 When: 1.0

View File

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

View File

@@ -1,5 +1,5 @@
Copyright (c) 2007-2008, Roy Marples <roy@marples.name> Copyright (c) 2007-2008, Roy Marples <roy@marples.name>
Copyright (c) 2007-2023, the OpenRC authors Copyright (c) 2007-2015, the OpenRC authors
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

42
Makefile Normal file
View File

@@ -0,0 +1,42 @@
# Copyright (c) 2007-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.
TOP:= ${dir ${realpath ${firstword ${MAKEFILE_LIST}}}}
MK= ${TOP}/mk
include ${TOP}/Makefile.inc
SUBDIR= conf.d etc init.d local.d man scripts sh src support sysctl.d
# Build pkgconfig or not
MKPKGCONFIG?= yes
ifeq (${MKPKGCONFIG},yes)
SUBDIR+= pkgconfig
endif
# We need to ensure that runlevels is done last
SUBDIR+= runlevels
INSTALLAFTER= _installafter
include ${MK}/sys.mk
include ${MK}/os.mk
include ${MK}/subdir.mk
include ${MK}/dist.mk
include ${MK}/gitver.mk
_installafter:
ifeq (${MKPREFIX},yes)
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
else ifneq (${OS},Linux)
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
endif
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp
${ECHO} "${VERSION}${GITVER}" > ${DESTDIR}/${LIBEXECDIR}/version

3
Makefile.inc Normal file
View File

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

205
NEWS.md
View File

@@ -1,211 +1,8 @@
OpenRC NEWS # OpenRC NEWS
===========
This file will contain a list of notable changes for each release. Note This file will contain a list of notable changes for each release. Note
the information in this file is in reverse order. the information in this file is in reverse order.
## OpenRC 0.47
This release is primarily an internal cleanup release.
The only user-visible difference is that unicode is now on by default.
## OpenRC 0.46
The path for the reference file for the swclock service is now
configurable in conf.d/swclock.
In the past, if supervise_daemon_args was not set *or empty*, it defaulted to
`start_stop_daemon_args`. This was bad because supervise-daemon doesn't
accept the same options as `start-stop-daemon`. So if we set e.g.
`start_stop_daemon_args="--wait 50"`, but not `supervise_daemon_args`,
and the user adds `supervisor=supervise-daemon` to the corresponding
conf.d/<service> file, the service will fail to start due to
unrecognized option "wait".
It would be best to remove this fallback, but that might break some
existing scripts that depend on it. So we are changing it to
use `start_stop_daemon_args` as the default for `supervise_daemon_args`
only if `supervise_daemon_args` is not set at all, but not if it's
empty.
This fallback will be dropped in a future release.
## OpenRC 0.45
The old make-based build system is removed in this release.
The killprocs service now has a KILL_DELAY setting to allow OpenRC based
containers to close all TCP/IP connections before they are shut down.
The --oom-score-adj option has been added to start-stop-daemon and
supervise-daemon. This sets the appropriate setting for the Linux
kernel. for more info, see the man pages.
Support for Linux capabilities has been added to both supervise-daemon
and start-stop-daemon using the --capabilities option.
As a result, the user can specify the inheritable, ambient and bounding set
by defining capabilities in the service script.
noexec has been added to the default mount options for /dev. If you need
to remove this option, add an entry to fstab.
A --secbits option has been added to start-stop-daemon and
supervise-daemon. This sets the security bits option which should be
applied to the daemon.
A no-new-privs option has been added to start-stop-daemon and
supervise-daemon. This sets the NO_NEW_PRIVS flag to apply to the
daemon.
On Linux, the service that seeds the random number generator has been
renamed from urandom to seedrng. This means that when you upgrade to
this version, if urandom is in your boot runlevel, you must add seedrng.
This can be done by issuing the following commands:
```
# rc-update add seedrng boot
# rc-update del urandom boot
```
## OpenRC 0.44
This version is the first to use a meson-based build system.
The gnu make build system should now be considered deprecated; it will
be removed sometime after 0.44.x.
I have opened a [discussion](https://github.com/OpenRC/openrc/discussions/441)
where you can voice concerns about removing it.
## OpenRC 0.43
This version changes the behavior of the checkpath helper to address
CVE-2018-21269. on Linux systems, We require non-terminal symbolic links
to be owned by root. Since we can't do this on non-linux systems, we do
not dereference non-terminal symbolic links by default. If you need them
dereferenced, you should add the "-s" switch to the appropriate
checkpath calls.
For more information, see http://github.com/openrc/openrc/issues/201.
The SHLIBDIR variable has been removed from the makefiles to make them
more consistent with most common makefiles. All libraries are now in
LIBDIR, so if you need to put them in /, override the LIBDIR variable
when you run make.
## OpenRC 0.42
openrc-shutdown now has the ability to shut down sysvinit-based systems.
A guide has been added for migrating systems using another init system
to openrc-init.
## OpenRC 0.41.
This version adds the ability to format the output of rc-status when
showing the status of services in a runlevel so that it may be parsed.
Currently, the -f switch only accepts ini as an argument which
causes the output to be in the .ini format.
This version adds an experimental build time switch to allow setting the
default shell to use for service scripts.
By default, this is set to /bin/sh if it is changed, the new shell must
be able to understand posix-compatible syntax.
## OpenRC 0.40
In this version, the keymaps and termencoding services on Linux needed
to be modified so they do not write to the root file system. This was
done so they can run earlier in the boot sequence. AS a result, you will
need to add save-termencoding and save-keymaps to your boot runlevel.
This can be done as follows:
```
# rc-update add save-keymaps boot
# rc-update add save-termencoding boot
```
## OpenRC 0.39
This version removes the support for addons.
The only place I know that this was used was Gentoo Baselayout 1.x, so
it shouldn't affect anyone since baselayout-1 has been dead for a few
years.
Since all supported Linux kernel versions now make efivarfs immutable
and all of the tools that access efivarfs are aware of this, we no
longer mount efivarfs read-only. See the following github issue for more
information:
https://github.com/openrc/openrc/issues/238
This version adds timed shutdown and cancelation of shutdown to
openrc-shutdown. Shutdowns can now be delayed for a certain amount of
time or scheduled for an exact time.
supervise-daemon supports health checks, which are a periodic way to make sure a
service is healthy. For more information on setting this up, please see
supervise-daemon-guide.md.
The --first-time switch has been added to all modprobe commands in the
modules service. This means that, on Linux, you will see failures if a
module was loaded by an initramfs or device manager before this service
runs. These messages are harmless, but to clean them up, you should adjust your
modules autoload configuration.
## OpenRC 0.37
start-stop-daemon now supports logging stdout and stderr of daemons to
processes instead of files. These processes are defined by the
output_logger and error_logger variables in standard service scripts, or
by the -3/--output-logger or -4/--error-logger switches if you use
start-stop-daemon directly. For more information on this, see the
start-stop-daemon man page.
## OpenRC 0.36
In this release, the modules-load service has been combined into the
modules service since there is no reason I know of to keep them
separate. However, modules also provides modules-load in case you were
using modules-load in your dependencies.
The consolefont, keymaps, numlock and procfs service scripts no longer
have a dependency on localmount.
If you are a linux user and are still separating / from /usr,
you will need to add the following line to the appropriate conf.d files:
rc_need="localmount"
## OpenRC 0.35
In this version, the cgroups mounting logic has been moved from the
sysfs service to the cgroups service. This was done so cgroups can be
mounted inside an lxc/lxd container without using the other parts of the
sysfs service.
?As a result of this change, if you are upgrading, you need to add
cgroups to your sysinit runlevel by running the following command as
root:
```
# rc-update add cgroups sysinit
```
For more information, see the following issue:
https://github.com/openrc/openrc/issues/187
Consider this your second notification with regard to /etc/mtab being a
file instead of a symbolic link.
In this version, the mtab service will complain loudly if you have
mtab_is_file set to yes and recommend that you change this to no and
restart the mtab service to migrate /etc/mtab to a symbolic link.
If there is a valid technical reason to keep /etc/mtab as a flat file
instead of a symbolic link to /proc/self/mounts, we are interested and
we will keep the support in that case. Please open an issue and let us
know however. Otherwise, consider this your final notice that the mtab
service will be removed in the future.
## OpenRC 0.33 ## OpenRC 0.33
This version removes the "service" binary which was just a copy of This version removes the "service" binary which was just a copy of

View File

@@ -1,24 +1,65 @@
OpenRC README # OpenRC README
=============
OpenRC is a dependency-based init system that works with the OpenRC is a dependency-based init system that works with the
system-provided init program, normally `/sbin/init`. system-provided init program, normally `/sbin/init`. Currently, it does
not have an init program of its own.
## building and installing ## Installation
OpenRC uses the [meson](http://mesonbuild.com) build system, so use the OpenRC requires GNU make.
usual methods for this build system to build and install.
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
MKSYSVINIT=yes
MKTERMCAP=ncurses
MKTERMCAP=termcap
PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local
PREFIX=/usr/local
BRANDING=\"Gentoo/$(uname -s)\"
```
## Notes ## Notes
We don't support building a static OpenRC with PAM. 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. `PKG_PREFIX` should be set to where packages install to by default.
`LOCAL_PREFIX` should be set to where user maintained packages are. `LOCAL_PREFIX` should be set when to where user maintained packages are.
Only set `LOCAL_PREFIX` if different from `PKG_PREFIX`. Only set `LOCAL_PREFIX` if different from `PKG_PREFIX`.
`ROOTPREFIX` should be set when the root path is different from '/'. `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. `rc` and `rc.shutdown` are the hooks from the BSD init into OpenRC.
@@ -32,21 +73,20 @@ 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, 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. remove them and then install so that the OS hooks into OpenRC.
## Discussions
We are testing [discussions](https://github.com/OpenRC/openrc/discussions), so
feel free to open topics there.
## Reporting Bugs ## Reporting Bugs
Please report bugs on our [bug tracker](http://github.com/OpenRC/openrc/issues). 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].
If you can contribute code , please feel free to do so by opening Better yet, if you can contribute code, please feel free to submit pull
[pull requests](https://github.com/OpenRC/openrc/pulls). requests [3].
## IRC Channel ## IRC Channel
We have an official irc channel, #openrc on the libera network. We have an official irc channel, #openrc on freenode, feel free to join
Please connect your irc client to irc.libera.chat and join #openrc on us there.
that network.
[1] https://bugs.gentoo.org/
[2] https://github.com/openrc/openrc/issues
[3] https://github.com/openrc/openrc/pulls

View File

@@ -1,5 +1,5 @@
OpenRC Network Ideals OpenRC Network Ideals
===================== ---------------------
The new style networking for OpenRC is very simplistic - provide a basic means The new style networking for OpenRC is very simplistic - provide a basic means
of configuring static interface address and routes whilst allowing the of configuring static interface address and routes whilst allowing the

View File

@@ -1,5 +1,4 @@
OpenRC Coding Style Guide # 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

View File

@@ -1,5 +1,4 @@
Setting up the agetty service in OpenRC # Setting up the agetty service in OpenRC
=================================xxxxxx
The agetty service is an OpenRC specific way to monitor and respawn a The agetty service is an OpenRC specific way to monitor and respawn a
getty, using agetty, on Linux. To use this method, make sure you aren't getty, using agetty, on Linux. To use this method, make sure you aren't

View File

@@ -1,12 +0,0 @@
if get_option('bash-completions')
bash_completions = [
'openrc',
'openrc-service-script',
'rc-service',
'rc-status',
'rc-update',
]
install_data(bash_completions,
install_dir : get_option('datadir') / 'bash-completion/completions')
endif

View File

@@ -1,24 +0,0 @@
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
#
# openrc completion command
#
_openrc()
{
local cur
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
if [[ ${#COMP_WORDS[*]} -le 2 ]]; then
COMPREPLY=($(compgen -W "$(rc-status --list)" -- $cur))
fi
return 0
} &&
complete -F _openrc openrc

View File

@@ -1,29 +0,0 @@
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
_openrc_service_script()
{
local script="${COMP_WORDS[0]}"
local cur="${COMP_WORDS[$COMP_CWORD]}"
if [[ ( -f "${script}" || -h "${script}" ) && -r "${script}" ]] \
&& [[ "$(head -n 1 "${script}")" =~ \#\!.*/openrc-run ]]
then
[[ $COMP_CWORD -gt 1 ]] && return 1
COMPREPLY=($(opts="start stop status restart pause zap ineed needsme iuse usesme broken"; \
eval "$(grep '^opts=' "${script}")"; echo "${opts}"))
[[ -n "$COMPREPLY" ]] || COMPREPLY=(start stop restart zap)
COMPREPLY=($(compgen -W "${COMPREPLY[*]}" -- "${cur}"))
else
COMPREPLY=($(compgen -o default -- "${cur}"))
fi
return 0
}
complete -F _openrc_service_script */etc/init.d/*

View File

@@ -1,115 +0,0 @@
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
#
# rc-service completion command
#
_rc_service()
{
local cur prev numwords opts
local words i x filename
local action actionpos
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
numwords=${#COMP_WORDS[*]}
if [[ ${prev} == '>' || ${prev} == '<' ]] ; then
COMPREPLY=($(compgen -f -- ${cur}))
return 0
fi
# find action
for x in ${COMP_LINE} ; do
if [[ ${x} =~ --(list|exists|resolve) ]] || [[ ${x} =~ -(l|e|r) ]]
then
action=${x}
break
fi
done
if [[ -n ${action} ]]; then
for ((i = 0; i < ${numwords}; i++ )); do
if [[ ${COMP_WORDS[${i}]} == "${action}" ]]; then
actionpos=${i}
break
fi
done
for ((i = 1; i < ${numwords}; i++ )); do
if [[ ! ${COMP_WORDS[$i]} == -* ]]; then
break
fi
done
fi
if [[ ${COMP_CWORD} -eq 3 ]]; then
return 1
fi
# check if an option was typed
if [[ ${cur} == -* ]]; then
if [[ ${cur} == --* ]]; then
opts="--list --exists --resolve"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
elif [[ ${cur} == -* ]]; then
opts="-l -e -r"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
# NOTE: This slows things down!
# (Adapted from bash_completion by Ian Macdonald <ian@caliban.org>)
# This removes any options from the list of completions that have
# already been specified on the command line.
COMPREPLY=($(echo "${COMP_WORDS[@]}" | \
(while read -d ' ' i; do
[[ -z ${i} ]] && continue
# flatten array with spaces on either side,
# otherwise we cannot grep on word boundaries of
# first and last word
COMPREPLY=" ${COMPREPLY[@]} "
# remove word from list of completions
COMPREPLY=(${COMPREPLY/ ${i%% *} / })
done
echo ${COMPREPLY[@]})))
return 0
else
# no option was typed
if [[ ${COMP_CWORD} -eq 1 ]]; then # if first word typed
# complete for init scripts
COMPREPLY=($(for i in $(rc-service --list) ; do \
[[ ${i} == "${cur}"* ]] && echo ${i} ; \
done))
return 0
elif [[ ${COMP_CWORD} -eq 2 ]] && [[ ${prev} != -* ]]; then # if second word typed and we didn't type in a function
rc-service --exists "$prev" || return
shopt -s extglob
while read -r _ line; do
if [[ $line == +([[:alnum:]_]):* ]]; then
opts+="${line%%:*} "
fi
done < <(rc-service "$prev" describe 2>&1)
shopt -u extglob
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
fi
if [[ ${action} == '--exists' ]] || [[ ${action} == '-e' ]] || \
[[ ${action} == '--resolve' ]] || [[ ${action} == '-r' ]]; then
COMPREPLY=($(for i in $(rc-service --list) ; do \
[[ ${i} == "${cur}"* ]] && echo ${i} ; \
done))
return 0
fi
return 0
} &&
complete -F _rc_service rc-service

View File

@@ -1,31 +0,0 @@
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
#
# rc-status completion command
#
_rcstatus()
{
local cur
cur="${COMP_WORDS[COMP_CWORD]}"
if [[ $COMP_CWORD -eq 1 ]]; then
if [[ "${cur}" == --* ]]; then
COMPREPLY=($(compgen -W '--all --list --unused' -- ${cur}))
elif [[ "${cur}" == -* ]]; then
COMPREPLY=($(compgen -W '-a -l -u' -- ${cur}))
else
COMPREPLY=($(compgen -W "$(rc-status --list)" -- ${cur}))
fi
else
unset COMPREPLY
fi
return 0
} &&
complete -F _rcstatus rc-status

View File

@@ -1,42 +0,0 @@
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
#
# rc-update completion command
#
_rc_update()
{
local cur show
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
if [[ $COMP_CWORD -eq 1 ]]; then
if [[ "${cur}" == -* ]]; then
COMPREPLY=($(compgen -W '-a -d -s' -- ${cur}))
else
COMPREPLY=($(compgen -W 'add del show' ${cur}))
fi
else
if [[ "${COMP_WORDS[1]}" == "show" ]] || [[ "${COMP_WORDS[1]}" == "-s" ]]; then
show="TRUE"
fi
if ([[ $COMP_CWORD -eq 3 ]] && [[ -z "$show" ]]) || \
([[ $COMP_CWORD -eq 2 ]] && [[ -n "$show" ]]); then
COMPREPLY=($(compgen -W "$(rc-status --list)" -- $cur))
elif [[ $COMP_CWORD -eq 2 ]]; then
COMPREPLY=($(compgen -W "$(rc-service --list)" $cur))
elif [[ ${#COMP_WORDS[*]} -gt 2 ]] ; then
COMPREPLY=($(compgen -W "$(rc-status --list)" -- $cur))
else
unset COMPREPLY
fi
fi
return 0
} &&
complete -F _rc_update rc-update

View File

@@ -1,21 +0,0 @@
#!/bin/bash
# Copyright (c) 2007-2018 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
set -e
set -u
set -x
# These are steps to run on Cirrus CI under a jailed FreeBSD system.
# See $TOP/.cirrus.yml for more info about the Cirrus CI setup.
meson build
meson compile -C build
meson test --verbose -C build

View File

@@ -1,40 +0,0 @@
#!/bin/bash
# Copyright (c) 2007-2018 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
set -e
set -u
set -x
# These are steps to run on TravisCI under a containerized Ubuntu system.
# See $TOP/.travis.yml for more info about the TravisCI setup.
# Run shellcheck, but don't fail (yet):
shellcheck --version
for shellscript in $(git ls-files); do
case $shellscript in
init.d/*.in) ;;
sh/*.in) ;;
sh/*.sh) ;;
support/init.d.examples/*.in) ;;
support/openvpn/*.sh) ;;
support/sysvinit/halt.sh) ;;
test/*.sh) ;;
*) continue ;;
esac
echo "Checking ${shellscript} with shellcheck:"
shellcheck -s sh "${shellscript}" || true
done
cpus=$(getconf _NPROCESSORS_CONF || echo 1)
# make on TravisCI doesn't support -O yet
make -j"${cpus}"
make test

20
conf.d/Makefile Normal file
View File

@@ -0,0 +1,20 @@
include ../mk/net.mk
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount netmount swap urandom ${CONF-${OS}}
ifeq (${MKNET},yes)
CONF+= network staticroute
endif
MK= ../mk
include ${MK}/os.mk
CONF-FreeBSD= ipfw modules moused powerd rarpd savecore syscons
CONF-Linux= agetty consolefont devfs dmesg hwclock keymaps killprocs modules \
mtab net-online
CONF-NetBSD= moused rarpd savecore
include ${MK}/scripts.mk

View File

@@ -8,7 +8,7 @@
# We can also specify the passno in /etc/fstab to check # We can also specify the passno in /etc/fstab to check
# If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can # If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can
# do an fsck outside of the normal scope, say for /home. # do an fsck outside of the normal scope, say for /home.
# Here are some examples:- # Here are some exampes:-
#fsck_passno="=1 =2" #fsck_passno="=1 =2"
#fsck_passno=">1" #fsck_passno=">1"
#fsck_passno="<2" #fsck_passno="<2"

View File

@@ -1,2 +1,2 @@
# Hostname fallback if /etc/hostname does not exist # Set to the hostname of this machine
hostname="localhost" hostname="localhost"

View File

@@ -1,6 +1,6 @@
# ipfw provides a stateful firewall. # ipfw provides a stateful firewall.
# This means we allow everything out, and if we have a connection we allow it # This means we allow everything out, and if we have a connection we allow it
# back in. This is very flexible and quite secure. # back in. This is very flexable and quite secure.
# For ease of use, we allow auth and ssh ports through as well. # For ease of use, we allow auth and ssh ports through as well.
# To override the list of allowed ports # To override the list of allowed ports

View File

@@ -4,8 +4,3 @@
# The setting is called killall5_opts because the options here are meant # The setting is called killall5_opts because the options here are meant
# to be identical to those you could pass to killall5. # to be identical to those you could pass to killall5.
killall5_opts="" killall5_opts=""
# If you need to delay after each kill attempt during shutdown, set the amount
# of time you need to delay here. This gets passed directly to sleep in
# the shell.
# kill_delay=0

View File

@@ -1,62 +0,0 @@
conf_d_dir = get_option('sysconfdir') / 'conf.d'
conf_common = [
'bootmisc',
'fsck',
'hostname',
'localmount',
'netmount',
'swap',
'swclock',
]
conf_net = [
'network',
'staticroute',
]
conf_FreeBSD = [
'ipfw',
'modules',
'moused',
'powerd',
'rarpd',
'savecore',
'syscons',
'urandom',
]
conf_Linux = [
'agetty',
'consolefont',
'devfs',
'dmesg',
'hwclock',
'keymaps',
'killprocs',
'modules',
'mtab',
'net-online',
'seedrng',
]
conf_NetBSD = [
'moused',
'rarpd',
'savecore',
'urandom',
]
conf_data = conf_common
if get_option('newnet')
conf_data = conf_data + conf_net
endif
if os == 'FreeBSD'
conf_data = conf_data + conf_FreeBSD
elif os == 'Linux'
conf_data = conf_data + conf_Linux
elif os == 'NetBSD'
conf_data = conf_data + conf_NetBSD
endif
install_data(conf_data, install_dir : conf_d_dir)

View File

@@ -8,6 +8,11 @@
#modules_2="ipv6" #modules_2="ipv6"
#modules="ohci1394" #modules="ohci1394"
# Linux users can give modules a different name when they load - the new name
# will also be used to pick arguments below.
# This is not supported on FreeBSD.
#modules="dummy:dummy1"
# Linux users can give the modules some arguments if needed, per version # Linux users can 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.

View File

@@ -1,13 +1,5 @@
# As far as we are aware, there are no modern linux tools or use cases
# which require /etc/mtab to be a separate file from /proc/self/mounts,
# so this setting should be commented out.
# If it is set to yes, please comment it out and run this command:
# # rc-service mtab restart
# In the future, the mtab service will be removed since we are not aware
# of any need to manipulate /etc/mtab as a separate file from
# /proc/self/mounts.
# If you have a technical reason we should keep this support, please
# open an issue at https://github.com/openrc/openrc/issues and let us
# know about your situation.
# This setting controls whether /etc/mtab is a file or symbolic link. # 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 # mtab_is_file=no

View File

@@ -1,5 +1,5 @@
# Assign static IP addresses and run custom scripts per interface. # Assign static IP addresses and run custom scripts per interface.
# Separate commands with ; # Seperate commands with ;
# Prefix with ! to run a shell script. # Prefix with ! to run a shell script.
# Use \$int to represent the interface # Use \$int to represent the interface
#ifconfig_eth0="192.168.0.10 netmask 255.255.255.0" #ifconfig_eth0="192.168.0.10 netmask 255.255.255.0"

View File

@@ -3,5 +3,5 @@
powerd_ac_mode="maximum" powerd_ac_mode="maximum"
#powerd_battery_mode="minimum" #powerd_battery_mode="minimum"
# Additional arguments for powerd - see the man page for details # Addiditonal arguments for powerd - see the man page for details
powerd_args="" powerd_args=""

View File

@@ -1,14 +0,0 @@
# The convention in this file is to show the default settings commented out.
#
# Sometimes you want to have urandom start before "localmount" (say for crypt
# swap), so you will need to customize this behavior. If you have /var on a
# separate partition, make sure paths under /var are adjusted to point to
# locations on your root device.
#
# Set skip_credit to yes or true if you do not want seed files to actually
# credit the random number generator. For example, you should set this if you
# plan to replicate the file system image without removing the contents of
# ${seed_dir}.
#
# seed_dir=/var/lib/seedrng
# skip_credit=no

View File

@@ -1,6 +0,0 @@
# This is the location of the reference file swclock uses to set the
# system date and time.
# This is the default path. If you are using it, you do not need to
# uncomment it. If you are using the default and have /var on its own
# file system, you need to add the appropriate rc_after setting.
# swclock_file=/var/lib/misc/openrc-shutdowntime

2
etc/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
rc
rc.shutdown

23
etc/Makefile Normal file
View File

@@ -0,0 +1,23 @@
DIR= ${SYSCONFDIR}
SRCS= rc.in rc.shutdown.in
BIN= ${BIN-${OS}}
CONF= rc.conf ${BIN-${OS}}
MK= ../mk
include ${MK}/os.mk
SED_EXTRA-FreeBSD= -e 's:@TERM@:cons25:g'
BIN-FreeBSD= rc rc.shutdown rc.devd
CONF-FreeBSD= devd.conf
SED_EXTRA-Linux= -e 's:@TERM@:wsvt25:g'
BIN-Linux=
CONF-Linux=
SED_EXTRA-NetBSD= -e 's:@TERM@:wsvt25:g'
BIN-NetBSD= rc rc.shutdown
CONF-NetBSD=
SED_EXTRA= ${SED_EXTRA-${OS}}
include ${MK}/scripts.mk

View File

@@ -1,44 +0,0 @@
etc_conf_data = configuration_data()
if os == 'FreeBSD'
etc_conf_data.set('TERM', 'cons25')
elif os == 'Linux'
etc_conf_data.set('TERM', 'wsvt25')
endif
etc_conf_common = [
'rc.conf',
]
etc_bin_FreeBSD = [
'rc.devd',
]
etc_conf_FreeBSD = [
'devd.conf',
]
etc_bin_NetBSD = [
'rc.in',
'rc.shutdown.in',
]
install_data(etc_conf_common,
install_dir : get_option('sysconfdir'))
if os == 'FreeBSD'
install_data(etc_bin_FreeBSD,
install_dir : get_option('sysconfdir'),
install_mode: 'rwxr-xr-x')
install_data(etc_conf_FreeBSD,
install_dir : get_option('sysconfdir'))
endif
if os == 'FreeBSD' or os == 'NetBSD'
foreach file : etc_bin_NetBSD
configure_file(input : file,
output : '@BASENAME@',
configuration : etc_conf_data,
install_dir: get_option('sysconfdir'),
install_mode: 'rwxr-xr-x')
endforeach
endif

View File

@@ -88,8 +88,8 @@
# MISC CONFIGURATION VARIABLES # MISC CONFIGURATION VARIABLES
# There variables are shared between many init scripts # There variables are shared between many init scripts
# Set unicode to NO to turn off unicode support for keyboards and screens. # Set unicode to YES to turn on unicode support for keyboards and screens.
#unicode="YES" #unicode="NO"
# This is how long fuser should wait for a remote server to respond. The # This is how long fuser should wait for a remote server to respond. The
# default is 60 seconds, but it can be adjusted here. # default is 60 seconds, but it can be adjusted here.
@@ -97,8 +97,8 @@
# Below is the default list of network fstypes. # Below is the default list of network fstypes.
# #
# afs ceph cifs coda davfs fuse fuse.glusterfs fuse.sshfs gfs glusterfs lustre # afs ceph cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
# ncpfs nfs nfs4 ocfs2 shfs smbfs # nfs nfs4 ocfs2 shfs smbfs
# #
# If you would like to add to this list, you can do so by adding your # If you would like to add to this list, you can do so by adding your
# own fstypes to the following variable. # own fstypes to the following variable.
@@ -116,13 +116,10 @@
# Some daemons are started and stopped via start-stop-daemon. # Some daemons are started and stopped via start-stop-daemon.
# We can set some things on a per service basis, like the nicelevel. # We can set some things on a per service basis, like the nicelevel.
# These need to be exported #SSD_NICELEVEL="-19"
#export SSD_NICELEVEL="0"
# Or the ionice level. The format is class[:data] , just like the # Or the ionice level. The format is class[:data] , just like the
# --ionice start-stop-daemon parameter. # --ionice start-stop-daemon parameter.
#export SSD_IONICELEVEL="0:0" #SSD_IONICELEVEL="2:2"
# Or the OOM score adjustment.
#export SSD_OOM_SCORE_ADJ="0"
# Pass ulimit parameters # Pass ulimit parameters
# If you are using bash in POSIX mode for your shell, note that the # If you are using bash in POSIX mode for your shell, note that the
@@ -201,9 +198,10 @@ rc_tty_number=12
# "unified" mounts cgroups version 2 on /sys/fs/cgroup # "unified" mounts cgroups version 2 on /sys/fs/cgroup
#rc_cgroup_mode="hybrid" #rc_cgroup_mode="hybrid"
# This is a list of controllers which should be enabled for cgroups version 2 # This is a list of controllers which should be enabled for cgroups version 2.
# when hybrid mode is being used. # If hybrid mode is being used, controllers listed here will not be
# Controllers listed here will not be available for cgroups version 1. # available for cgroups version 1.
# This is a global setting.
#rc_cgroup_controllers="" #rc_cgroup_controllers=""
# This variable contains the cgroups version 2 settings for your services. # This variable contains the cgroups version 2 settings for your services.
@@ -229,11 +227,6 @@ rc_tty_number=12
# /sys/fs/cgroup in hybrid or legacy mode. # /sys/fs/cgroup in hybrid or legacy mode.
#rc_controller_cgroups="YES" #rc_controller_cgroups="YES"
# The following setting turns on the memory.use_hierarchy setting in the
# root memory cgroup for cgroups v1.
# It must be set to yes in this file if you want this functionality.
#rc_cgroup_memory_use_hierarchy="NO"
# The following settings allow you to set up values for the cgroups version 1 # The following settings allow you to set up values for the cgroups version 1
# controllers for your services. # controllers for your services.
# They can be set in this file;, however, if you do this, the settings # They can be set in this file;, however, if you do this, the settings
@@ -291,9 +284,7 @@ rc_tty_number=12
# To perform this cleanup manually for a stopped service, you can # To perform this cleanup manually for a stopped service, you can
# execute cgroup_cleanup with /etc/init.d/<service> cgroup_cleanup or # execute cgroup_cleanup with /etc/init.d/<service> cgroup_cleanup or
# rc-service <service> cgroup_cleanup. # rc-service <service> cgroup_cleanup.
# If the kernel includes support for cgroup2's cgroup.kill, this is used # The process followed in this cleanup is the following:
# to reliably teardown the cgroup.
# If this fails, the process followed in this cleanup is the following:
# 1. send stopsig (sigterm if it isn't set) to all processes left in the # 1. send stopsig (sigterm if it isn't set) to all processes left in the
# cgroup immediately followed by sigcont. # cgroup immediately followed by sigcont.
# 2. Send sighup to all processes in the cgroup if rc_send_sighup is # 2. Send sighup to all processes in the cgroup if rc_send_sighup is

View File

@@ -1,11 +1,11 @@
#!/bin/sh #!/bin/sh
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -26,7 +26,7 @@ getmedia() {
if [ ! -e /etc/init.d/"$1" -a ! -e /usr/local/init.d/"$1" ]; then if [ ! -e /etc/init.d/"$1" -a ! -e /usr/local/init.d/"$1" ]; then
base=${1%%.*} base=${1%%.*}
if [ "${base}" = "net" ]; then if [ "${base}" = "net" ]; then
# We only create links for physical interfaces # We only create links for pyhsical interfaces
[ -n "$(getmedia ${1#*.})" ] || exit 1 [ -n "$(getmedia ${1#*.})" ] || exit 1
base="net.lo0" base="net.lo0"
fi fi

View File

@@ -1,11 +1,11 @@
#!/bin/sh #!@SHELL@
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.

View File

@@ -1,11 +1,11 @@
#!/bin/sh #!@SHELL@
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.

View File

@@ -1,6 +1,3 @@
OpenRC Users Guide
==================
# Purpose and description # Purpose and description
OpenRC is an init system for Unixoid operating systems. It takes care of OpenRC is an init system for Unixoid operating systems. It takes care of
@@ -30,8 +27,8 @@ openrc scans the runlevels (default: `/etc/runlevels`) and builds a dependency
graph, then starts the needed service scripts, either serialized (default) or in graph, then starts the needed service scripts, either serialized (default) or in
parallel. parallel.
When all the service scripts are started openrc terminates. There is no When all the init scripts are started openrc terminates. There is no persistent
persistent daemon. (Integration with tools like monit, runit or s6 can be done) daemon. (Integration with tools like monit, runit or s6 can be done)
# Shutdown # Shutdown
@@ -66,7 +63,7 @@ own if needed. This allows, for example, to have a default runlevel with
disabled. disabled.
The `rc-status` helper will print all currently active runlevels and the state The `rc-status` helper will print all currently active runlevels and the state
of services in them: of init scripts in them:
``` ```
# rc-status # rc-status
@@ -77,7 +74,7 @@ Runlevel: default
``` ```
All runlevels are represented as folders in `/etc/runlevels/` with symlinks to All runlevels are represented as folders in `/etc/runlevels/` with symlinks to
the actual service scripts. the actual init scripts.
Calling openrc with an argument (`openrc default`) will switch to that Calling openrc with an argument (`openrc default`) will switch to that
runlevel; this will start and stop services as needed. runlevel; this will start and stop services as needed.
@@ -85,13 +82,122 @@ runlevel; this will start and stop services as needed.
Managing runlevels is usually done through the `rc-update` helper, but could of Managing runlevels is usually done through the `rc-update` helper, but could of
course be done by hand if desired. course be done by hand if desired.
e.g. `rc-update add nginx default` - add nginx to the default runlevel e.g. `rc-update add nginx default` - add nginx to the default runlevel
Note: `rc-update` will not start nginx! You'd still have to trigger `rc`, or run Note: This will not auto-start nginx! You'd still have to trigger `rc` or run
the service script by hand, or start it with `rc-service nginx start`. the initscript by hand.
FIXME: Document stacked runlevels FIXME: Document stacked runlevels
The default startup uses the runlevels `sysinit`, `boot`, and `default`, The default startup uses the runlevels `boot`, `sysinit` and `default`, in that
in that order. Shutdown uses the `shutdown` runlevel. 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` # The Magic of `conf.d`
@@ -107,11 +213,11 @@ START_OPTS="--extraparameter sausage"
init.d/foo: init.d/foo:
start() { start() {
/usr/sbin/foo-daemon ${START_OPTS} /usr/sbin/foo-daemon ${STARTOPTS}
} }
``` ```
The big advantage of this split is that most of the time editing of the service The big advantage of this split is that most of the time editing of the init
script can be avoided. script can be avoided.
# Start-Stop-Daemon # Start-Stop-Daemon
@@ -137,7 +243,7 @@ Setting `ulimit` and `nice` values per service can be done through the
Under Linux, OpenRC can use cgroups for process management as well. Once Under Linux, OpenRC can use cgroups for process management as well. Once
the kernel is configured appropriately, the `rc_cgroup_mode` setting in the kernel is configured appropriately, the `rc_cgroup_mode` setting in
/etc/rc.conf should be used to control whether cgroups version one, /etc/rc.conf should be used to control whether cgroups version one,,
two, or both are used. The default is to use both if they are available. two, or both are used. The default is to use both if they are available.
By changing certain settings in the service's `conf.d` file limits can be By changing certain settings in the service's `conf.d` file limits can be
@@ -162,9 +268,10 @@ stopped, by using:
The `rc_cgroup_cleanup` setting can be changed to yes to make this The `rc_cgroup_cleanup` setting can be changed to yes to make this
happen automatically when the service is stopped. happen automatically when the service is stopped.
# Caching # Caching
For performance reasons OpenRC keeps a cache of pre-parsed service metadata For performance reasons OpenRC keeps a cache of pre-parsed initscript metadata
(e.g. `depend`). The default location for this is `/${RC_SVCDIR}/cache`. (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 The cache uses `mtime` to check for file staleness. Should any service script
@@ -174,5 +281,5 @@ change it'll re-source the relevant files and update the cache
OpenRC has wrappers for many common output tasks in libeinfo. OpenRC has wrappers for many common output tasks in libeinfo.
This allows to print colour-coded status notices and other things. This allows to print colour-coded status notices and other things.
To make the output consistent the bundled service scripts all use ebegin/eend to To make the output consistent the bundled initscripts all use ebegin/eend to
print nice messages. print nice messages.

View File

@@ -1,47 +0,0 @@
# OpenRC init process guide
OpenRC now includes an init process which can be used on Linux systems
in place of sysvinit.
## migrating a live system to openrc-init
Configuring a live system to use this init process is very
straight-forward, but the steps must be completed in this order.
* have your boot loader add "init=/sbin/openrc-init" to the kernel command line
The details of how to do this will vary from distro to distro, so they are
out of scope for this document.
* Install gettys into the runlevels where you need them.
If you are using the provided /etc/init.d/agetty script,, you should
first create symlinks in /etc/init.d to it for the ports where you
want gettys to run, e.g. the following will work if you want gettys on
tty1-tty6.
```
# cd /etc/init.d
# for x in tty1 tty2 tty3 tty4 tty5 tty6; do
ln -snf agetty agetty.$x
done
```
Once this is done, use ```rc-update``` as normal to install the agetty
services in the appropriate runlevels.
* Reboot your system.
At this point you are running under openrc-init, and you should use
openrc-shutdown to handle shutting down, powering off, rebooting etc.
## optional sysvinit compatibility
If you build and install OpenRC with MKSYSVINIT=yes, you will build and install
wrappers that make openrc-init compatible with sysvinit -- you will have
commands like "halt" "shutdown" "reboot" and "poweroff".
If you want this functionality on a live system, you should first
migrate the system to openrc-init, remove sysvinit, then rebuild and
install this package with MKSYSVINIT=yes.

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

@@ -0,0 +1,48 @@
agetty
binfmt
modules-load
bootmisc
fsck
hostname
local
localmount
loopback
moused
netmount
network
root
savecache
swap
sysctl
urandom
devfs
dmesg
hwclock
consolefont
keymaps
killprocs
modules
mount-ro
mtab
net-online
numlock
osclock
procfs
s6-svscan
staticroute
sysfs
devdb
hostid
newsyslog
pf
rarpd
rc-enabled
rpcbind
runsvdir
savecore
swap-blk
swclock
syslogd
termencoding
ttys
wscons

36
init.d/Makefile Normal file
View File

@@ -0,0 +1,36 @@
include ../mk/net.mk
DIR= ${INITDIR}
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 \
sysctl.in runsvdir.in urandom.in s6-svscan.in ${SRCS-${OS}}
BIN= ${OBJS}
# Are we installing our network scripts?
ifeq (${MKNET},yes)
SRCS+= network.in staticroute.in
endif
MK= ../mk
include ${MK}/os.mk
# Generic BSD scripts
SRCS-FreeBSD= hostid.in modules.in moused.in newsyslog.in pf.in rarpd.in \
rc-enabled.in rpcbind.in savecore.in syslogd.in
# These are FreeBSD specific
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \
modules-load.in mixer.in nscd.in powerd.in syscons.in
SRCS-Linux= agetty.in binfmt.in devfs.in dmesg.in hwclock.in consolefont.in \
keymaps.in killprocs.in modules.in modules-load.in mount-ro.in mtab.in \
numlock.in procfs.in net-online.in sysfs.in termencoding.in
# Generic BSD scripts
SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are NetBSD specific
SRCS-NetBSD+= devdb.in swap-blk.in ttys.in wscons.in
include ${MK}/scripts.mk
_installafter_: realinstall

View File

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

View File

@@ -1,41 +1,33 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2017 The OpenRC Authors. # Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
description="start agetty on a terminal line" description="start agetty on a terminal line"
supervisor=supervise-daemon supervisor=supervise-daemon
port="${RC_SVCNAME#*.}" port="${RC_SVCNAME#*.}"
respawn_period="${respawn_period:-60}"
term_type="${term_type:-linux}" term_type="${term_type:-linux}"
command=/sbin/agetty command=/sbin/agetty
command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}" command_args_foreground="${agetty_options} ${port} ${baud} ${term_type}"
pidfile="/run/${RC_SVCNAME}.pid" pidfile="/run/${RC_SVCNAME}.pid"
export EINFO_QUIET="${quiet:-yes}"
depend() { depend() {
after local after local
keyword -prefix keyword -prefix
provide getty
} }
start_pre() { start_pre() {
if [ "$port" = "$RC_SVCNAME" ]; then if [ -z "$port" ]; then
eerror "${RC_SVCNAME} cannot be started directly. You must create" eerror "${RC_SVCNAME} cannot be started directly. You must create"
eerror "symbolic links to it for the ports you want to start" eerror "symbolic links to it for the ports you want to start"
eerror "agetty on and add those to the appropriate runlevels." eerror "agetty on and add those to the appropriate runlevels."
return 1 return 1
else
export EINFO_QUIET="${quiet:-yes}"
fi fi
} }
stop_pre()
{
export EINFO_QUIET="${quiet:-yes}"
}

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -113,10 +113,8 @@ migrate_to_run()
rm $src rm $src
elif [ ! -L $src -a -d $src ]; then elif [ ! -L $src -a -d $src ]; then
ebegin "Migrating $src to $dst" ebegin "Migrating $src to $dst"
if ! rmdir $src 2>/dev/null; then
cp -a $src/* $dst/ cp -a $src/* $dst/
rm -rf $src rm -rf $src
fi
eend $? eend $?
fi fi
# If $src doesn't exist at all, just run this # If $src doesn't exist at all, just run this
@@ -226,7 +224,7 @@ start()
case "$RC_SYS" in case "$RC_SYS" in
VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;; VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;;
*) *)
if yesno ${previous_dmesg:-no} && [ -e /var/log/dmesg ]; then if yesno ${previous_dmesg:-no}; then
mv /var/log/dmesg /var/log/dmesg.old mv /var/log/dmesg /var/log/dmesg.old
fi fi
dmesg > /var/log/dmesg dmesg > /var/log/dmesg
@@ -243,13 +241,7 @@ stop()
{ {
# Write a halt record if we're shutting down # Write a halt record if we're shutting down
if [ "$RC_RUNLEVEL" = shutdown ]; then if [ "$RC_RUNLEVEL" = shutdown ]; then
if [ "$RC_UNAME" = Linux ]; then [ "$RC_UNAME" = Linux ] && openrc-shutdown -w
if [ -x /sbin/halt ]; then
halt -w
else
openrc-shutdown -w
fi
fi
if [ "$RC_SYS" = OPENVZ ]; then if [ "$RC_SYS" = OPENVZ ]; then
yesno $RC_REBOOT && printf "" >/reboot yesno $RC_REBOOT && printf "" >/reboot
fi fi

View File

@@ -1,157 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2017 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Mount the control groups."
cgroup_opts=nodev,noexec,nosuid
depend()
{
keyword -docker -prefix -systemd-nspawn -vserver
after sysfs
}
cgroup1_base()
{
grep -qw cgroup /proc/filesystems || return 0
if ! mountinfo -q /sys/fs/cgroup; then
ebegin "Mounting cgroup filesystem"
local opts="${cgroup_opts},mode=755,size=${rc_cgroupsize:-10m}"
mount -n -t tmpfs -o "${opts}" cgroup_root /sys/fs/cgroup
eend $?
fi
if ! mountinfo -q /sys/fs/cgroup/openrc; then
local agent="${RC_LIBEXECDIR}/sh/cgroup-release-agent.sh"
mkdir /sys/fs/cgroup/openrc
mount -n -t cgroup \
-o none,${cgroup_opts},name=openrc,release_agent="$agent" \
openrc /sys/fs/cgroup/openrc
printf 1 > /sys/fs/cgroup/openrc/notify_on_release
fi
return 0
}
cgroup1_controllers()
{
yesno "${rc_controller_cgroups:-YES}" && [ -e /proc/cgroups ] &&
grep -qw cgroup /proc/filesystems || return 0
while read -r name _ _ enabled _; do
case "${enabled}" in
1) mountinfo -q "/sys/fs/cgroup/${name}" && continue
local x
for x in $rc_cgroup_controllers; do
[ "${name}" = "blkio" ] && [ "${x}" = "io" ] &&
continue 2
[ "${name}" = "${x}" ] &&
continue 2
done
mkdir "/sys/fs/cgroup/${name}"
mount -n -t cgroup -o "${cgroup_opts},${name}" \
"${name}" "/sys/fs/cgroup/${name}"
yesno "${rc_cgroup_memory_use_hierarchy:-no}" &&
[ "${name}" = memory ] &&
echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy
;;
esac
done < /proc/cgroups
return 0
}
cgroup2_base()
{
grep -qw cgroup2 /proc/filesystems || return 0
local base
base="$(cgroup2_find_path)"
mkdir -p "${base}"
mount -t cgroup2 none -o "${cgroup_opts},nsdelegate" "${base}" 2> /dev/null ||
mount -t cgroup2 none -o "${cgroup_opts}" "${base}"
return 0
}
cgroup2_controllers()
{
grep -qw cgroup2 /proc/filesystems || return 0
local active cgroup_path x y
cgroup_path="$(cgroup2_find_path)"
[ -z "${cgroup_path}" ] && return 0
[ ! -e "${cgroup_path}/cgroup.controllers" ] && return 0
[ ! -e "${cgroup_path}/cgroup.subtree_control" ]&& return 0
read -r active < "${cgroup_path}/cgroup.controllers"
for x in ${active}; do
case "$rc_cgroup_mode" in
unified)
echo "+${x}" > "${cgroup_path}/cgroup.subtree_control"
;;
hybrid)
for y in ${rc_cgroup_controllers}; do
if [ "$x" = "$y" ]; then
echo "+${x}" > "${cgroup_path}/cgroup.subtree_control"
fi
done
;;
esac
done
return 0
}
cgroups_hybrid()
{
cgroup1_base
cgroup2_base
cgroup2_controllers
cgroup1_controllers
return 0
}
cgroups_legacy()
{
cgroup1_base
cgroup1_controllers
return 0
}
cgroups_unified()
{
cgroup2_base
cgroup2_controllers
return 0
}
mount_cgroups()
{
case "${rc_cgroup_mode:-hybrid}" in
hybrid) cgroups_hybrid ;;
legacy) cgroups_legacy ;;
unified) cgroups_unified ;;
esac
return 0
}
restorecon_cgroups()
{
if [ -x /sbin/restorecon ]; then
ebegin "Restoring SELinux contexts in /sys/fs/cgroup"
restorecon -rF /sys/fs/cgroup >/dev/null 2>&1
eend $?
fi
return 0
}
start()
{
# set up kernel support for cgroups
if [ -d /sys/fs/cgroup ]; then
mount_cgroups
restorecon_cgroups
fi
return 0
}

View File

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

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2008-2015 The OpenRC Authors. # Copyright (c) 2008-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -15,18 +15,14 @@ depend()
{ {
provide dev-mount provide dev-mount
before dev before dev
keyword -docker -prefix -systemd-nspawn -vserver keyword -docker -lxc -prefix -systemd-nspawn -vserver
} }
mount_dev() mount_dev()
{ {
local action conf_d_dir devfstype msg mountopts local action=--mount devfstype msg=Mounting
action=--mount # Some devices require exec, Bug #92921
conf_d_dir="${RC_SERVICE%/*/*}/conf.d" local mountopts="exec,nosuid,mode=0755"
msg=Mounting
# Some devices require exec, https://bugs.gentoo.org/92921
# Users with such requirements can use an fstab entry for /dev
mountopts="noexec,nosuid,mode=0755"
if yesno ${skip_mount_dev:-no} ; then if yesno ${skip_mount_dev:-no} ; then
einfo "/dev will not be mounted due to user request" einfo "/dev will not be mounted due to user request"
return 0 return 0
@@ -37,7 +33,7 @@ mount_dev()
msg=Remounting msg=Remounting
fi fi
if fstabinfo -q /dev; then if fstabinfo -q /dev; then
ebegin "$msg /dev according to fstab" ebegin "$msg /dev according to @SYSCONFDIR@/fstab"
fstabinfo -q $action /dev fstabinfo -q $action /dev
eend $? eend $?
return 0 return 0
@@ -58,7 +54,7 @@ mount_dev()
ewarn "is no entry for /dev in fstab." ewarn "is no entry for /dev in fstab."
ewarn "This means /dev will not be mounted." ewarn "This means /dev will not be mounted."
ewarn "To avoid this message, set CONFIG_DEVTMPFS or CONFIG_TMPFS to y" ewarn "To avoid this message, set CONFIG_DEVTMPFS or CONFIG_TMPFS to y"
ewarn "in your kernel configuration or see ${conf_d_dir}/${RC_SVCNAME}" ewarn "in your kernel configuration or see @SYSCONFDIR@/conf.d/devfs"
fi fi
return 0 return 0
} }
@@ -67,7 +63,6 @@ seed_dev()
{ {
# Seed /dev with some things that we know we need # Seed /dev with some things that we know we need
if [ "${RC_SYS}" != LXC ]; then
# creating /dev/console, /dev/tty and /dev/tty1 to be able to write # creating /dev/console, /dev/tty and /dev/tty1 to be able to write
# to $CONSOLE with/without bootsplash before udevd creates it # to $CONSOLE with/without bootsplash before udevd creates it
[ -c /dev/console ] || mknod -m 600 /dev/console c 5 1 [ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
@@ -80,7 +75,6 @@ seed_dev()
# so udev can add its start-message to dmesg # so udev can add its start-message to dmesg
[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11 [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
fi
# extra symbolic links not provided by default # extra symbolic links not provided by default
[ -e /dev/fd ] || ln -snf /proc/self/fd /dev/fd [ -e /dev/fd ] || ln -snf /proc/self/fd /dev/fd

View File

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

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -106,7 +106,7 @@ start()
_abort _abort
fi;; fi;;
4) if [ "$RC_UNAME" = Linux ]; then 4) if [ "$RC_UNAME" = Linux ]; then
ewend 1 "Filesystem errors left uncorrected, aborting" ewend 1 "Fileystem errors left uncorrected, aborting"
_abort _abort
else else
ewend 1 "Filesystems repaired, but reboot needed" ewend 1 "Filesystems repaired, but reboot needed"

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -19,18 +19,20 @@ depend()
start() start()
{ {
local h source local h source x
if read -r h _ 2> /dev/null < @SYSCONFDIR@/hostname; then if [ -s @SYSCONFDIR@/hostname ] && [ -r @SYSCONFDIR@/hostname ]; then
source="@SYSCONFDIR@/hostname" read h x <@SYSCONFDIR@/hostname
elif [ -n "${hostname}" ]; then source="from @SYSCONFDIR@/hostname"
h=${hostname} else
source="@SYSCONFDIR@/conf.d/${RC_SVCNAME}" # 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 (HOSTNAME var)
fi fi
if [ -z "$h" ]; then if [ -z "$h" ]; then
einfo "Using default system hostname" einfo "Using default system hostname"
return 0 return 0
fi fi
ebegin "Setting hostname to $h from $source" ebegin "Setting hostname to $h $source"
hostname "$h" hostname "$h"
eend $? "Failed to set the hostname" eend $? "Failed to set the hostname"
} }

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -72,7 +72,7 @@ get_noadjfile()
{ {
if ! yesno $clock_adjfile; then if ! yesno $clock_adjfile; then
# Some implementations don't handle adjustments # Some implementations don't handle adjustments
if LC_ALL=C hwclock --help 2>&1 | grep -q -e "--noadjfile"; then if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
echo --noadjfile echo --noadjfile
fi fi
fi fi
@@ -105,7 +105,7 @@ start()
done done
[ -n "$modname" ] && [ -n "$modname" ] &&
ewarn "The $modname module needs to be configured in" \ ewarn "The $modname module needs to be configured in" \
"${RC_SERVICE%/*/*}/conf.d/modules or built in." "@SYSCONFDIR@/conf.d/modules or built in."
fi fi
fi fi

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -122,7 +122,7 @@ start() {
ipfw add deny { tcp or udp } from any to any $p in ipfw add deny { tcp or udp } from any to any $p in
done done
# Broadcasts and multicasts # Broadcasts and muticasts
ipfw add deny ip from any to 255.255.255.255 ipfw add deny ip from any to 255.255.255.255
ipfw add deny ip from any to 224.0.0.0/24 ipfw add deny ip from any to 224.0.0.0/24

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -13,8 +13,8 @@ description="Applies a keymap for the consoles."
depend() depend()
{ {
need termencoding need localmount termencoding
after devfs after bootmisc clock
keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu
} }
@@ -42,7 +42,7 @@ start()
fi fi
local wkeys= kmode="-a" msg="ASCII" local wkeys= kmode="-a" msg="ASCII"
if yesno ${unicode:-yes}; then if yesno $unicode; then
kmode="-u" kmode="-u"
msg="UTF-8" msg="UTF-8"
fi fi
@@ -68,5 +68,10 @@ start()
echo "altgr keycode 18 = U+20AC" | loadkeys -q - echo "altgr keycode 18 = U+20AC" | loadkeys -q -
eend $? eend $?
fi fi
return 0
# Save the keymapping for use immediately at boot
if checkpath -W "$RC_LIBEXECDIR"; then
mkdir -p "$RC_LIBEXECDIR"/console
dumpkeys >"$RC_LIBEXECDIR"/console/keymap
fi
} }

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -20,10 +20,8 @@ start()
{ {
ebegin "Terminating remaining processes" ebegin "Terminating remaining processes"
kill_all 15 ${killall5_opts} kill_all 15 ${killall5_opts}
sleep ${kill_delay:-0}
eend 0 eend 0
ebegin "Killing remaining processes" ebegin "Killing remaining processes"
sleep ${kill_delay:-0}
kill_all 9 ${killall5_opts} kill_all 9 ${killall5_opts}
eend 0 eend 0
} }

View File

@@ -1,18 +1,15 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
conf_d_dir="${RC_SERVICE%/*/*}/conf.d" description="Executes user programs in @SYSCONFDIR@/local.d"
local_d_dir="${RC_SERVICE%/*/*}/local.d"
description="Executes user programs in ${local_d_dir}"
depend() depend()
{ {
@@ -22,12 +19,12 @@ depend()
start() start()
{ {
local file has_errors redirect retval
has_errors=0
yesno $rc_verbose || redirect='> /dev/null 2>&1'
ebegin "Starting local" ebegin "Starting local"
local file has_errors=0 redirect retval
yesno $rc_verbose || redirect='> /dev/null 2>&1'
eindent eindent
for file in "${local_d_dir}"/*.start; do for file in @SYSCONFDIR@/local.d/*.start; do
if [ -x "${file}" ]; then if [ -x "${file}" ]; then
vebegin "Executing \"${file}\"" vebegin "Executing \"${file}\""
eval "${file}" $redirect eval "${file}" $redirect
@@ -41,32 +38,32 @@ start()
eoutdent eoutdent
if command -v local_start >/dev/null 2>&1; then if command -v local_start >/dev/null 2>&1; then
ewarn "\"${conf_d_dir}/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 executable scripts with an .start extension"
ewarn "in \"${local_d_dir}\"" ewarn "in \"@SYSCONFDIR@/local.d\""
local_start local_start
fi fi
eend ${has_errors} eend ${has_errors}
# We have to end with a zero exit code, because a failed execution # We have to end with a zero exit code, because a failed execution
# of an executable ${local_d_dir}/*.start file shouldn't result in # of an executable @SYSCONFDIR@/local.d/*.start file shouldn't result in
# marking the local service as failed. Otherwise we are unable to # marking the local service as failed. Otherwise we are unable to
# execute any executable ${local_d_dir}/*.stop file, because a failed # execute any executable @SYSCONFDIR@/local.d/*.stop file, because a failed
# marked service cannot be stopped (and the stop function would # marked service cannot be stopped (and the stop function would
# actually call the executable ${local_d_dir}/*.stop file(s)). # actually call the executable @SYSCONFDIR@/local.d/*.stop file(s)).
return 0 return 0
} }
stop() stop()
{ {
local file has_errors redirect retval
has_errors=0
yesno $rc_verbose || redirect='> /dev/null 2>&1'
ebegin "Stopping local" ebegin "Stopping local"
local file has_errors=0 redirect retval
yesno $rc_verbose || redirect='> /dev/null 2>&1'
eindent eindent
for file in "${local_d_dir}"/*.stop; do for file in @SYSCONFDIR@/local.d/*.stop; do
if [ -x "${file}" ]; then if [ -x "${file}" ]; then
vebegin "Executing \"${file}\"" vebegin "Executing \"${file}\""
eval "${file}" $redirect eval "${file}" $redirect
@@ -80,16 +77,16 @@ stop()
eoutdent eoutdent
if command -v local_stop >/dev/null 2>&1; then if command -v local_stop >/dev/null 2>&1; then
ewarn "\"${conf_d_dir}/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 executable scripts with an .stop extension"
ewarn "in \"${local_d_dir}\"" ewarn "in \"@SYSCONFDIR@/local.d\""
local_stop local_stop
fi fi
eend ${has_errors} eend ${has_errors}
# An executable ${local_d_dir}/*.stop file which failed with a # An executable @SYSCONFDIR@/local.d/*.stop file which failed with a
# non-zero exit status is not a reason to mark this service # non-zero exit status is not a reason to mark this service
# as failed, therefore we have to end with a zero exit code. # as failed, therefore we have to end with a zero exit code.
return 0 return 0

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -13,9 +13,9 @@ description="Mounts disks and swap according to /etc/fstab."
depend() depend()
{ {
need fsck root need fsck
use lvm modules use lvm modules mtab root
after clock lvm modules after clock lvm modules root
keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver
} }

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2013-2015 The OpenRC Authors. # Copyright (c) 2013-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.

View File

@@ -1,101 +0,0 @@
init_d_dir = get_option('sysconfdir') / 'init.d'
init_common = [
'bootmisc.in',
'fsck.in',
'hostname.in',
'local.in',
'localmount.in',
'loopback.in',
'netmount.in',
'osclock.in',
'root.in',
'savecache.in',
'swap.in',
'swclock.in',
'sysctl.in',
'runsvdir.in',
's6-svscan.in',
]
if get_option('newnet')
init_common = init_common + [
'network.in',
'staticroute.in',
]
endif
init_Linux = [
'agetty.in',
'binfmt.in',
'cgroups.in',
'consolefont.in',
'devfs.in',
'dmesg.in',
'hwclock.in',
'keymaps.in',
'killprocs.in',
'modules.in',
'mount-ro.in',
'mtab.in',
'numlock.in',
'procfs.in',
'net-online.in',
'save-keymaps.in',
'save-termencoding.in',
'seedrng.in',
'sysfs.in',
'termencoding.in',
]
init_BSD = [
'hostid.in',
'moused.in',
'newsyslog.in',
'pf.in',
'rarpd.in',
'rc-enabled.in',
'rpcbind.in',
'savecore.in',
'syslogd.in',
'urandom.in',
]
init_FreeBSD = [
'adjkerntz.in',
'devd.in',
'dumpon.in',
'encswap.in',
'ipfw.in',
'modules.in',
'mixer.in',
'nscd.in',
'powerd.in',
'syscons.in',
]
init_NetBSD = [
'devdb.in',
'swap-blk.in',
'ttys.in',
'wscons.in',
]
init_data = init_common
if os == 'Dragonfly'
init_data = init_data + init_BSD
elif os == 'FreeBSD' or os == 'Gnu-kFreeBSD'
init_data = init_data + init_BSD + init_FreeBSD
elif os == 'Linux'
init_data = init_data + init_Linux
elif os == 'NetBSD'
init_data = init_data + init_BSD + init_NetBSD
endif
foreach init_d_file : init_data
configure_file(input : init_d_file,
output : '@BASENAME@',
configuration : init_d_conf_data,
install_dir: init_d_dir,
install_mode: 'rwxr-xr-x')
endforeach

View File

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

72
init.d/modules-load.in Normal file
View File

@@ -0,0 +1,72 @@
#!@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,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -14,76 +14,19 @@ description="Loads a user defined list of kernel modules."
depend() depend()
{ {
use isapnp use isapnp
provide modules-load want modules-load
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver 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 --first-time --use-blacklist --verbose "$x"; rc=$? ;;
*) ;;
esac
eend
done
return 0
}
modules_load_d()
{
local x
files=$(find_modfiles)
for x in $files; do
load_modules $x
done
return 0
}
FreeBSD_modules() FreeBSD_modules()
{ {
local cnt=0 x local cnt=0 x
for x in $modules; do for x in $modules; do
ebegin "Loading module $x" ebegin "Loading module $x"
kldload "$x" kldload "$x"
eend && : $(( cnt += 1 )) eend $? "Failed to load $x" && : $(( cnt += 1 ))
done done
einfo "Autoloaded $cnt module(s)" einfo "Autoloaded $cnt module(s)"
return 0
} }
Linux_modules() Linux_modules()
@@ -105,7 +48,7 @@ Linux_modules()
x=${x%.*} x=${x%.*}
done done
local list= x= xx= y= args= local list= x= xx= y= args= mpargs= 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
@@ -114,25 +57,32 @@ Linux_modules()
[ -n "$list" ] && ebegin "Loading kernel modules" [ -n "$list" ] && ebegin "Loading kernel modules"
for x in $list; do for x in $list; do
a=${x#*:}
if [ "$a" = "$x" ]; then
unset mpargs
else
x=${x%%:*}
mpargs="-o $a"
fi
aa=$(shell_var "$a")
xx=$(shell_var "$x") xx=$(shell_var "$x")
for y in $kv_variant_list ; do for y in $kv_variant_list ; do
eval args=\$module_${aa}_args_$(shell_var "$y")
[ -n "${args}" ] && break
eval args=\$module_${xx}_args_$(shell_var "$y") eval args=\$module_${xx}_args_$(shell_var "$y")
[ -n "${args}" ] && break [ -n "${args}" ] && break
done done
[ -z "$args" ] && eval args=\$module_${aa}_args
[ -z "$args" ] && eval args=\$module_${xx}_args [ -z "$args" ] && eval args=\$module_${xx}_args
eval modprobe --first-time --use-blacklist --verbose "$x" "$args" eval modprobe --use-blacklist --verbose "$mpargs" "$x" "$args"
done done
[ -n "$list" ] && eend [ -n "$list" ] && eend
return 0
} }
start() start()
{ {
case "$RC_UNAME" in case "$RC_UNAME" in
FreeBSD|Linux) FreeBSD|Linux) ${RC_UNAME}_modules ;;
modules_load_d
${RC_UNAME}_modules
;;
*) ;; *) ;;
esac esac
return 0 return 0

View File

@@ -1,15 +1,15 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
description="Re-mount filesystems read-only for a clean reboot." description="Re-mount filesytems read-only for a clean reboot."
depend() depend()
{ {

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -14,7 +14,6 @@ description="Update /etc/mtab to match what the kernel knows about"
depend() depend()
{ {
after clock after clock
before localmount
need root need root
keyword -prefix -systemd-nspawn keyword -prefix -systemd-nspawn
} }
@@ -31,10 +30,6 @@ start()
einfo "Creating mtab symbolic link" einfo "Creating mtab symbolic link"
ln -snf /proc/self/mounts /etc/mtab ln -snf /proc/self/mounts /etc/mtab
else else
ewarn "The ${RC_SVCNAME} service will be removed in the future."
ewarn "Please change the mtab_is_file setting to no and run"
ewarn "# rc-service mtab restart"
ewarn "to create the mtab symbolic link."
[ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link" [ -L /etc/mtab ] && ewarn "Removing /etc/mtab symbolic link"
rm -f /etc/mtab rm -f /etc/mtab
einfo "Creating mtab file" einfo "Creating mtab file"

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2015 The OpenRC Authors. # Copyright (c) 2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -13,7 +13,7 @@ description="Delays until the network is online or a specific timeout"
depend() depend()
{ {
after modules net after modules
need sysfs need sysfs
provide network-online provide network-online
keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver
@@ -23,7 +23,6 @@ get_interfaces()
{ {
local ifname iftype local ifname iftype
for ifname in /sys/class/net/*; do for ifname in /sys/class/net/*; do
[ -h "${ifname}" ] || continue
read iftype < ${ifname}/type read iftype < ${ifname}/type
[ "$iftype" = "1" ] && printf "%s " ${ifname##*/} [ "$iftype" = "1" ] && printf "%s " ${ifname##*/}
done done
@@ -32,7 +31,7 @@ get_interfaces()
start () start ()
{ {
local carriers configured dev gateway ifcount infinite local carriers configured dev gateway ifcount infinite
local carrier operstate rc local rc state x
ebegin "Checking to see if the network is online" ebegin "Checking to see if the network is online"
rc=0 rc=0
@@ -45,12 +44,10 @@ start ()
ifcount=0 ifcount=0
for dev in ${interfaces}; do for dev in ${interfaces}; do
: $((ifcount += 1)) : $((ifcount += 1))
read carrier < /sys/class/net/$dev/carrier 2> /dev/null || read x < /sys/class/net/$dev/carrier
carrier= [ $x -eq 1 ] && : $((carriers += 1))
[ "$carrier" = 1 ] && : $((carriers += 1)) read x < /sys/class/net/$dev/operstate
read operstate < /sys/class/net/$dev/operstate 2> /dev/null || [ "$x" = up ] && : $((configured += 1))
operstate=
[ "$operstate" = up ] && : $((configured += 1))
done done
[ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break [ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break
sleep 1 sleep 1
@@ -64,13 +61,8 @@ start ()
if [ $rc -eq 0 ] && yesno ${include_ping_test:-no}; then if [ $rc -eq 0 ] && yesno ${include_ping_test:-no}; then
ping_test_host="${ping_test_host:-google.com}" ping_test_host="${ping_test_host:-google.com}"
if [ -n "$ping_test_host" ]; then if [ -n "$ping_test_host" ]; then
while $infinite || [ $timeout -gt 0 ]; do
ping -c 1 $ping_test_host > /dev/null 2>&1 ping -c 1 $ping_test_host > /dev/null 2>&1
rc=$? rc=$?
[ $rc -eq 0 ] && break
sleep 1
: $((timeout -= 1))
done
fi fi
fi fi
eend $rc "The network is offline" eend $rc "The network is offline"

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2009-2015 The OpenRC Authors. # Copyright (c) 2009-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -76,7 +76,7 @@ tentative()
case "$RC_UNAME" in case "$RC_UNAME" in
Linux) Linux)
[ -n "$(command -v ip)" ] || return 1 [ -x /sbin/ip ] || [ -x /bin/ip ] || return 1
[ -n "$(ip -f inet6 addr show tentative)" ] [ -n "$(ip -f inet6 addr show tentative)" ]
;; ;;
*) *)
@@ -174,7 +174,7 @@ runip()
routeflush() routeflush()
{ {
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
if [ -n "$(command -v ip)" ]; then if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
ip route flush scope global ip route flush scope global
ip route delete default 2>/dev/null ip route delete default 2>/dev/null
else else
@@ -346,7 +346,7 @@ stop()
then then
veinfo "$int" veinfo "$int"
runargs /etc/ifdown."$int" "$downcmd" runargs /etc/ifdown."$int" "$downcmd"
if [ -n "$(command -v ip)" ]; then if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
# We need to do this, otherwise we may # We need to do this, otherwise we may
# fail to add things correctly on restart # fail to add things correctly on restart
ip address flush dev "$int" 2>/dev/null ip address flush dev "$int" 2>/dev/null

View File

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

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -15,6 +15,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend() depend()
{ {
need localmount
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
} }
@@ -42,8 +43,6 @@ start()
stop() stop()
{ {
yesno $RC_GOINGDOWN && return 0
ebegin "Disabling numlock on ttys" ebegin "Disabling numlock on ttys"
_setleds - _setleds -
eend $? "Failed to disable numlock" eend $? "Failed to disable numlock"

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2014-2015 The OpenRC Authors. # Copyright (c) 2014-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -17,15 +17,3 @@ depend()
{ {
provide clock provide clock
} }
start()
{
# This stub function is required to avoid OpenRC warning at boot:
#
# * The command variable is undefined.
# * There is nothing for osclock to start.
# * If this is what you intend, please write a start function.
# * This will become a failure in a future release.
#
return 0
}

View File

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

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -16,6 +16,7 @@ depend()
after clock after clock
use devfs use devfs
want modules want modules
need localmount
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
} }
@@ -26,8 +27,8 @@ start()
[ ! -e /proc/sys/fs/binfmt_misc/register ]; then [ ! -e /proc/sys/fs/binfmt_misc/register ]; then
if ! grep -qs binfmt_misc /proc/filesystems && if ! grep -qs binfmt_misc /proc/filesystems &&
modprobe -q binfmt-misc; then modprobe -q binfmt-misc; then
ewarn "The binfmt-misc module needs to be loaded by" \ ewarn "The binfmt-misc module needs to be configured in" \
"the modules service or built in." "@SYSCONFDIR@/conf.d/modules or built in."
fi 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"

View File

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

View File

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

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -49,7 +49,9 @@ start()
local mountpoint local mountpoint
for mountpoint in $(fstabinfo); do for mountpoint in $(fstabinfo); do
case "${mountpoint}" in case "${mountpoint}" in
/*) # Don't remount swap etc. /)
;;
/*)
mountinfo -q "${mountpoint}" && \ mountinfo -q "${mountpoint}" && \
fstabinfo --remount "${mountpoint}" fstabinfo --remount "${mountpoint}"
;; ;;

View File

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

View File

@@ -1,17 +1,17 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2016 The OpenRC Authors. # Copyright (c) 2016 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
supervisor=supervise-daemon
command=/usr/bin/runsvdir command=/usr/bin/runsvdir
pidfile="/var/run/${RC_SVCNAME}.pid" command_background=yes
pidfile=/var/run/runsvdir.pid
command_args="-P $RC_SVCDIR/sv 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'" command_args="-P $RC_SVCDIR/sv 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'"
start_pre() start_pre()

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2015 The OpenRC Authors. # Copyright (c) 2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -21,13 +21,9 @@ depend()
start_pre() start_pre()
{ {
if [ ! -e "$command" ]; then
eerror "$command is missing (please install s6)"
else
einfo "Creating s6 scan directory" einfo "Creating s6 scan directory"
checkpath -d -m 0755 "$RC_SVCDIR"/s6-scan checkpath -d -m 0755 "$RC_SVCDIR"/s6-scan
fi return $?
return
} }
stop_post() stop_post()

View File

@@ -1,28 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2018 Sony Interactive Entertainment, Inc.
#
# 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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Save the keymap for use as early as possible"
depend()
{
need termencoding
after bootmisc clock keymaps
keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu
}
start()
{
# Save the keymapping for use immediately at boot
ebegin "Saving key mapping"
if checkpath -W "$RC_LIBEXECDIR"; then
mkdir -p "$RC_LIBEXECDIR"/console
dumpkeys >"$RC_LIBEXECDIR"/console/keymap
fi
eend $? "Unable to save keymapping"
}

View File

@@ -1,35 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright (c) 2018 Sony Interactive Entertainment, Inc.
#
# 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/HEAD/LICENSE
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.
description="Configures terminal encoding."
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
: ${unicode:=${UNICODE}}
depend()
{
keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu
use root
after bootmisc clock termencoding
}
start()
{
ebegin "Saving terminal encoding"
# Save the encoding for use immediately at boot
if checkpath -W "$RC_LIBEXECDIR"; then
mkdir -p "$RC_LIBEXECDIR"/console
if yesno ${unicode:-yes}; then
echo "" > "$RC_LIBEXECDIR"/console/unicode
else
rm -f "$RC_LIBEXECDIR"/console/unicode
fi
fi
eend 0
}

View File

@@ -1,11 +1,11 @@
#!@SBINDIR@/openrc-run #!@SBINDIR@/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # https://github.com/OpenRC/openrc/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # 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 # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
@@ -49,7 +49,7 @@ start()
fi fi
ebegin "Saving dependency cache" ebegin "Saving dependency cache"
local rc=0 save= local rc=0 save=
for x in depconfig deptree rc.log shutdowntime softlevel; do for x in shutdowntime softlevel rc.log; do
[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x" [ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x"
done done
if [ -n "$save" ]; then if [ -n "$save" ]; then

View File

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

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