mirror of
https://github.com/systemd/systemd.git
synced 2025-02-21 05:57:34 +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',
|
'8',
|
||||||
['systemd-random-seed'],
|
['systemd-random-seed'],
|
||||||
'ENABLE_RANDOMSEED'],
|
'ENABLE_RANDOMSEED'],
|
||||||
|
['systemd-rc-local-generator', '8', [], ''],
|
||||||
['systemd-remount-fs.service', '8', ['systemd-remount-fs'], ''],
|
['systemd-remount-fs.service', '8', ['systemd-remount-fs'], ''],
|
||||||
['systemd-resolve', '1', [], 'ENABLE_RESOLVE'],
|
['systemd-resolve', '1', [], 'ENABLE_RESOLVE'],
|
||||||
['systemd-resolved.service', '8', ['systemd-resolved'], '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-getty-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>systemd-gpt-auto-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-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-system-update-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>systemd-sysv-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>,
|
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "alloc-util.h"
|
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "mkdir.h"
|
#include "mkdir.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
@ -32,21 +31,16 @@
|
|||||||
static const char *arg_dest = "/tmp";
|
static const char *arg_dest = "/tmp";
|
||||||
|
|
||||||
static int add_symlink(const char *service, const char *where) {
|
static int add_symlink(const char *service, const char *where) {
|
||||||
_cleanup_free_ char *from = NULL, *to = NULL;
|
const char *from, *to;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
assert(service);
|
assert(service);
|
||||||
assert(where);
|
assert(where);
|
||||||
|
|
||||||
from = strjoin(SYSTEM_DATA_UNIT_PATH, "/", service);
|
from = strjoina(SYSTEM_DATA_UNIT_PATH "/", service);
|
||||||
if (!from)
|
to = strjoina(arg_dest, "/", where, ".wants/", service);
|
||||||
return log_oom();
|
|
||||||
|
|
||||||
to = strjoin(arg_dest, "/", where, ".wants/", service);
|
(void) mkdir_parents_label(to, 0755);
|
||||||
if (!to)
|
|
||||||
return log_oom();
|
|
||||||
|
|
||||||
mkdir_parents_label(to, 0755);
|
|
||||||
|
|
||||||
r = symlink(from, to);
|
r = symlink(from, to);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
@ -60,7 +54,7 @@ static int add_symlink(const char *service, const char *where) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
int r = EXIT_SUCCESS;
|
int ret = EXIT_SUCCESS;
|
||||||
|
|
||||||
if (argc > 1 && argc != 4) {
|
if (argc > 1 && argc != 4) {
|
||||||
log_error("This program takes three or no arguments.");
|
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.");
|
log_debug("Automatically adding rc-local.service.");
|
||||||
|
|
||||||
if (add_symlink("rc-local.service", "multi-user.target") < 0)
|
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) {
|
if (access(RC_LOCAL_SCRIPT_PATH_STOP, X_OK) >= 0) {
|
||||||
log_debug("Automatically adding halt-local.service.");
|
log_debug("Automatically adding halt-local.service.");
|
||||||
|
|
||||||
if (add_symlink("halt-local.service", "final.target") < 0)
|
if (add_symlink("halt-local.service", "final.target") < 0)
|
||||||
r = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return r;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Early root shell on @DEBUGTTY@ FOR DEBUGGING ONLY
|
Description=Early root shell on @DEBUGTTY@ FOR DEBUGGING ONLY
|
||||||
Documentation=man:sushell(8)
|
Documentation=man:sushell(8)
|
||||||
|
Documentation=man:systemd-debug-generator(8)
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
IgnoreOnIsolate=yes
|
IgnoreOnIsolate=yes
|
||||||
ConditionPathExists=@DEBUGTTY@
|
ConditionPathExists=@DEBUGTTY@
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
# systemd-rc-local-generator if @RC_LOCAL_SCRIPT_PATH_START@ is executable.
|
# systemd-rc-local-generator if @RC_LOCAL_SCRIPT_PATH_START@ is executable.
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility
|
Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility
|
||||||
|
Documentation=man:systemd-rc-local-generator(8)
|
||||||
ConditionFileIsExecutable=@RC_LOCAL_SCRIPT_PATH_START@
|
ConditionFileIsExecutable=@RC_LOCAL_SCRIPT_PATH_START@
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user