<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd-rc-local-generator" conditional='HAVE_SYSV_COMPAT'>
  <refentryinfo>
    <title>systemd-rc-local-generator</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-rc-local-generator</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-rc-local-generator</refname>
    <refname>rc-local.service</refname>
    <refpurpose>Compatibility generator and service to start <filename>&RC_LOCAL_PATH;</filename> during boot</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/usr/lib/systemd/system-generators/systemd-rc-local-generator</filename></para>
    <para><filename>rc-local.service</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><command>systemd-rc-local-generator</command> is a generator that checks whether
    <filename>&RC_LOCAL_PATH;</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. The script is run after <filename>network.target</filename>, but in
    parallel with most other regular system services.</para>

    <para>Note that <filename>rc-local.service</filename> runs with slightly different semantics than the
    original System V version, which was executed "last" in the boot process, which is a concept that does
    not translate to systemd.</para>

    <para>Also note that <filename>rc-local.service</filename> is ordered after
    <filename>network.target</filename>, which does not mean that the network is functional, see
    <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
    If the script requires a configured network connection, it may be desirable to pull in and order it after
    <filename>network-online.target</filename> with a drop-in:</para>

    <programlisting># /etc/systemd/system/rc-local.service.d/network.conf
[Unit]
Wants=network-online.target
After=network-online.target
</programlisting>

    <para>Support for <filename>&RC_LOCAL_PATH;</filename> is provided for compatibility with specific System
    V systems only. However, it is strongly recommended to avoid making use of this script today, and instead
    provide proper unit files with appropriate dependencies for any scripts to run during the boot process.
    Note that the path to the script is set at compile time and varies between distributions.</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><simplelist type="inline">
      <member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
    </simplelist></para>
  </refsect1>
</refentry>
