mirror of
https://github.com/systemd/systemd.git
synced 2025-02-18 21:57:48 +03:00
Merge pull request #7735 from poettering/rc-local-fix
rc-local documentation
This commit is contained in:
commit
3529295d2b
@ -594,6 +594,7 @@ manpages = [
|
||||
'8',
|
||||
['systemd-random-seed'],
|
||||
'ENABLE_RANDOMSEED'],
|
||||
['systemd-rc-local-generator', '8', [], ''],
|
||||
['systemd-remount-fs.service', '8', ['systemd-remount-fs'], ''],
|
||||
['systemd-resolve', '1', [], 'ENABLE_RESOLVE'],
|
||||
['systemd-resolved.service', '8', ['systemd-resolved'], 'ENABLE_RESOLVE'],
|
||||
|
86
man/systemd-rc-local-generator.xml
Normal file
86
man/systemd-rc-local-generator.xml
Normal file
@ -0,0 +1,86 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--*-nxml-*-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
<!--
|
||||
SPDX-License-Identifier: LGPL-2.1+
|
||||
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2017 Lennart Poettering
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
systemd is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<refentry id="systemd-rc-local-generator">
|
||||
|
||||
<refentryinfo>
|
||||
<title>systemd-rc-local-generator</title>
|
||||
<productname>systemd</productname>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Developer</contrib>
|
||||
<firstname>Lennart</firstname>
|
||||
<surname>Poettering</surname>
|
||||
<email>lennart@poettering.net</email>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>systemd-rc-local-generator</refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>systemd-rc-local-generator</refname>
|
||||
<refpurpose>Compatibility generator for starting <filename>/etc/rc.local</filename> and <filename>/usr/sbin/halt.local</filename> during boot and shutdown</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename>/usr/lib/systemd/system-generators/systemd-rc-local-generator</filename></para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><filename>systemd-rc-local-generator</filename> is a generator that checks whether
|
||||
<filename>/etc/rc.local</filename> exists and is executable, and if it is pulls the
|
||||
<filename>rc-local.service</filename> unit into the boot process. This unit is responsible for running this script
|
||||
during late boot. Note that the script will be run with slightly different semantics than the original System V
|
||||
version, which was run "last" in the boot process, which is a concept that does not translate to systemd. The
|
||||
script is run after <filename>network.target</filename>, but in parallel with most other regular system
|
||||
services.</para>
|
||||
|
||||
<para><filename>systemd-rc-local-generator</filename> also checks whether <filename>/usr/sbin/halt.local</filename>
|
||||
exists and is executable, and if it is pulls the <filename>halt-local.service</filename> unit into the shutdown
|
||||
process. This unit is responsible for running this script during later shutdown.</para>
|
||||
|
||||
<para>Support for both <filename>/etc/rc.local</filename> and <filename>/usr/sbin/halt.local</filename> is provided
|
||||
for compatibility with specific System V systems only. However, it is strongly recommended to avoid making use of
|
||||
these scripts today, and instead provide proper unit files with appropriate dependencies for any scripts to run
|
||||
during the boot or shutdown processes.</para>
|
||||
|
||||
<para><filename>systemd-rc-local-generator</filename> implements
|
||||
<citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
@ -336,6 +336,7 @@ find $dir</programlisting>
|
||||
<citerefentry><refentrytitle>systemd-getty-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-rc-local-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd-sysv-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "log.h"
|
||||
#include "mkdir.h"
|
||||
#include "string-util.h"
|
||||
@ -32,21 +31,16 @@
|
||||
static const char *arg_dest = "/tmp";
|
||||
|
||||
static int add_symlink(const char *service, const char *where) {
|
||||
_cleanup_free_ char *from = NULL, *to = NULL;
|
||||
const char *from, *to;
|
||||
int r;
|
||||
|
||||
assert(service);
|
||||
assert(where);
|
||||
|
||||
from = strjoin(SYSTEM_DATA_UNIT_PATH, "/", service);
|
||||
if (!from)
|
||||
return log_oom();
|
||||
from = strjoina(SYSTEM_DATA_UNIT_PATH "/", service);
|
||||
to = strjoina(arg_dest, "/", where, ".wants/", service);
|
||||
|
||||
to = strjoin(arg_dest, "/", where, ".wants/", service);
|
||||
if (!to)
|
||||
return log_oom();
|
||||
|
||||
mkdir_parents_label(to, 0755);
|
||||
(void) mkdir_parents_label(to, 0755);
|
||||
|
||||
r = symlink(from, to);
|
||||
if (r < 0) {
|
||||
@ -60,7 +54,7 @@ static int add_symlink(const char *service, const char *where) {
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int r = EXIT_SUCCESS;
|
||||
int ret = EXIT_SUCCESS;
|
||||
|
||||
if (argc > 1 && argc != 4) {
|
||||
log_error("This program takes three or no arguments.");
|
||||
@ -80,15 +74,15 @@ int main(int argc, char *argv[]) {
|
||||
log_debug("Automatically adding rc-local.service.");
|
||||
|
||||
if (add_symlink("rc-local.service", "multi-user.target") < 0)
|
||||
r = EXIT_FAILURE;
|
||||
ret = EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (access(RC_LOCAL_SCRIPT_PATH_STOP, X_OK) >= 0) {
|
||||
log_debug("Automatically adding halt-local.service.");
|
||||
|
||||
if (add_symlink("halt-local.service", "final.target") < 0)
|
||||
r = EXIT_FAILURE;
|
||||
ret = EXIT_FAILURE;
|
||||
}
|
||||
|
||||
return r;
|
||||
return ret;
|
||||
}
|
||||
|
@ -10,6 +10,7 @@
|
||||
[Unit]
|
||||
Description=Early root shell on @DEBUGTTY@ FOR DEBUGGING ONLY
|
||||
Documentation=man:sushell(8)
|
||||
Documentation=man:systemd-debug-generator(8)
|
||||
DefaultDependencies=no
|
||||
IgnoreOnIsolate=yes
|
||||
ConditionPathExists=@DEBUGTTY@
|
||||
|
@ -11,6 +11,7 @@
|
||||
# systemd-rc-local-generator if @RC_LOCAL_SCRIPT_PATH_START@ is executable.
|
||||
[Unit]
|
||||
Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility
|
||||
Documentation=man:systemd-rc-local-generator(8)
|
||||
ConditionFileIsExecutable=@RC_LOCAL_SCRIPT_PATH_START@
|
||||
After=network.target
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user