1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 03:25:31 +03:00

Merge pull request #16170 from keszybz/man-user@

Better documentation for user@ services
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-06-14 19:55:11 +02:00 committed by GitHub
commit cb24fad361
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 23 deletions

View File

@ -1,6 +1,6 @@
<!-- SPDX-License-Identifier: LGPL-2.1+ --> <!-- SPDX-License-Identifier: LGPL-2.1+ -->
<refentry id="systemd.directives" conditional="HAVE_PYTHON"> <refentry id="systemd.directives">
<refentryinfo> <refentryinfo>
<title>systemd.directives</title> <title>systemd.directives</title>
<productname>systemd</productname> <productname>systemd</productname>

View File

@ -18,7 +18,7 @@ manpages = [
['file-hierarchy', '7', [], ''], ['file-hierarchy', '7', [], ''],
['halt', '8', ['poweroff', 'reboot'], ''], ['halt', '8', ['poweroff', 'reboot'], ''],
['homectl', '1', [], 'ENABLE_HOMED'], ['homectl', '1', [], 'ENABLE_HOMED'],
['homed.conf', '5', ['homed.conf.d'], 'ENABLE_RESOLVE'], ['homed.conf', '5', ['homed.conf.d'], 'ENABLE_HOMED'],
['hostname', '5', [], ''], ['hostname', '5', [], ''],
['hostnamectl', '1', [], 'ENABLE_HOSTNAMED'], ['hostnamectl', '1', [], 'ENABLE_HOSTNAMED'],
['hwdb', '7', [], 'ENABLE_HWDB'], ['hwdb', '7', [], 'ENABLE_HWDB'],
@ -1096,7 +1096,10 @@ manpages = [
''], ''],
['udev_new', '3', ['udev_ref', 'udev_unref'], ''], ['udev_new', '3', ['udev_ref', 'udev_unref'], ''],
['udevadm', '8', [], ''], ['udevadm', '8', [], ''],
['user@.service', '5', ['user-runtime-dir@.service'], ''], ['user@.service',
'5',
['systemd-user-runtime-dir', 'user-runtime-dir@.service'],
''],
['userdbctl', '1', [], 'ENABLE_USERDB'], ['userdbctl', '1', [], 'ENABLE_USERDB'],
['vconsole.conf', '5', [], 'ENABLE_VCONSOLE'] ['vconsole.conf', '5', [], 'ENABLE_VCONSOLE']
] ]

View File

@ -17,34 +17,37 @@
<refnamediv> <refnamediv>
<refname>user@.service</refname> <refname>user@.service</refname>
<refname>user-runtime-dir@.service</refname> <refname>user-runtime-dir@.service</refname>
<refpurpose>System units to manage user processes</refpurpose> <refname>systemd-user-runtime-dir</refname>
<refpurpose>System units to start the user manager</refpurpose>
</refnamediv> </refnamediv>
<refsynopsisdiv> <refsynopsisdiv>
<para><filename>user@<replaceable>UID</replaceable>.service</filename></para> <para><filename>user@<replaceable>UID</replaceable>.service</filename></para>
<para><filename>user-runtime-dir@<replaceable>UID</replaceable>.service</filename></para> <para><filename>user-runtime-dir@<replaceable>UID</replaceable>.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-user-runtime-dir</filename></para>
<para><filename>user-<replaceable>UID</replaceable>.slice</filename></para> <para><filename>user-<replaceable>UID</replaceable>.slice</filename></para>
</refsynopsisdiv> </refsynopsisdiv>
<refsect1> <refsect1>
<title>Description</title> <title>Description</title>
<para>The <para>The <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
system manager (PID 1) starts user manager instances as system manager (PID 1) starts user manager instances as
<filename>user@<replaceable>UID</replaceable>.service</filename>, where the user's numerical UID <filename>user@<replaceable>UID</replaceable>.service</filename>, with the user's numerical UID used as
is used as the instance identifier. Each <command>systemd --user</command> instance manages a the instance identifier. These instances use the same executable as the system manager, but running in a
hierarchy of its own units. See mode where it starts a different set of units. Each <command>systemd --user</command> instance manages a
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> for hierarchy of units specific to that user. See
a discussion of systemd units and <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> for a
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>1</manvolnum></citerefentry> discussion of units and
for a list of units that form the basis of the unit hierarchies of system and user units.</para> <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>1</manvolnum></citerefentry> for a
list of units that form the basis of the unit hierarchies of system and user units.</para>
<para><filename>user@<replaceable>UID</replaceable>.service</filename> is accompanied by the <para><filename>user@<replaceable>UID</replaceable>.service</filename> is accompanied by the
system unit <filename>user-runtime-dir@<replaceable>UID</replaceable>.service</filename>, which system unit <filename>user-runtime-dir@<replaceable>UID</replaceable>.service</filename>, which
creates the user's runtime directory creates the user's runtime directory
<filename>/run/user/<replaceable>UID</replaceable></filename>, and then removes it when this <filename>/run/user/<replaceable>UID</replaceable></filename>, and then removes it when this
unit is stopped.</para> unit is stopped. <filename>user-runtime-dir@<replaceable>UID</replaceable>.service</filename>
executes the <filename>systemd-user-runtime-dir</filename> binary to do the actual work.</para>
<para>User processes may be started by the <filename>user@.service</filename> instance, in which <para>User processes may be started by the <filename>user@.service</filename> instance, in which
case they will be part of that unit in the system hierarchy. They may also be started elsewhere, case they will be part of that unit in the system hierarchy. They may also be started elsewhere,
@ -53,7 +56,7 @@
display manager like <command>gdm</command>, in which case they form a .scope unit (see display manager like <command>gdm</command>, in which case they form a .scope unit (see
<citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>). <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
Both <filename>user@<replaceable>UID</replaceable>.service</filename> and the scope units are Both <filename>user@<replaceable>UID</replaceable>.service</filename> and the scope units are
collected under a <filename>user-<replaceable>UID</replaceable>.slice</filename>.</para> collected under the <filename>user-<replaceable>UID</replaceable>.slice</filename>.</para>
<para>Individual <filename>user-<replaceable>UID</replaceable>.slice</filename> slices are <para>Individual <filename>user-<replaceable>UID</replaceable>.slice</filename> slices are
collected under <filename>user.slice</filename>, see collected under <filename>user.slice</filename>, see

View File

@ -9,7 +9,7 @@ from xml_helper import xml_parse, xml_print, tree
MDASH = '' if sys.version_info.major >= 3 else ' -- ' MDASH = '' if sys.version_info.major >= 3 else ' -- '
TEMPLATE = '''\ TEMPLATE = '''\
<refentry id="systemd.index" conditional="HAVE_PYTHON"> <refentry id="systemd.index">
<refentryinfo> <refentryinfo>
<title>systemd.index</title> <title>systemd.index</title>

View File

@ -4,16 +4,13 @@
from __future__ import print_function from __future__ import print_function
import collections import collections
import sys import sys
import os.path
import pprint import pprint
from os.path import basename
from xml_helper import xml_parse from xml_helper import xml_parse
def man(page, number): def man(page, number):
return '{}.{}'.format(page, number) return '{}.{}'.format(page, number)
def xml(file):
return os.path.basename(file)
def add_rules(rules, name): def add_rules(rules, name):
xml = xml_parse(name) xml = xml_parse(name)
# print('parsing {}'.format(name), file=sys.stderr) # print('parsing {}'.format(name), file=sys.stderr)
@ -78,9 +75,12 @@ def make_mesonfile(rules, dist_files):
if __name__ == '__main__': if __name__ == '__main__':
pages = sys.argv[1:] pages = sys.argv[1:]
pages = (p for p in pages
if basename(p) not in {
'systemd.directives.xml',
'systemd.index.xml',
'directives-template.xml'})
rules = create_rules(pages) rules = create_rules(pages)
dist_files = (xml(file) for file in pages dist_files = (basename(p) for p in pages)
if not file.endswith(".directives.xml") and
not file.endswith(".index.xml"))
print(make_mesonfile(rules, dist_files)) print(make_mesonfile(rules, dist_files))