summaryrefslogtreecommitdiffstats
path: root/man/systemd.unit.xml (follow)
Commit message (Collapse)AuthorAgeFilesLines
* man: grammar fixes for introductory adverbs/phrasesJan Engelhardt2024-12-251-6/+6
|
* man: expand word contractionsJan Engelhardt2024-12-251-8/+8
| | | | For written text, contractions are not normally used.
* condition: add new ConditionKernelModuleLoaded=Lennart Poettering2024-12-111-0/+11
| | | | | | | | | | | | | This introduces a new unit condition check: that matches if a specific kmod module is allowed. This should be generally useful, but there's one usecase in particular: we can optimize modprobe@.service with this and avoid forking out a bunch of modprobe requests during boot for the same kmods. Checking if a kernel module is loaded is more complicated than just checking if /sys/module/$MODULE/ exists, since kernel modules typically take a while to initialize and we must check that this is complete (by checking if the sysfs attr "initstate" is "live").
* man: fix incorrect volume numbers in internal man page referencesŠtěpán Němec2024-11-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some ambiguity (e.g., same-named man pages in multiple volumes) makes it impossible to fully automate this, but the following Python snippet (run inside the man/ directory of the systemd repo) helped to generate the sed command lines (which were subsequently manually reviewed, run and the false positives reverted): from pathlib import Path import lxml from lxml import etree as ET man2vol: dict[str, str] = {} man2citerefs: dict[str, list] = {} for file in Path(".").glob("*.xml"): tree = ET.parse(file, lxml.etree.XMLParser(recover=True)) meta = tree.find("refmeta") if meta is not None: title = meta.findtext("refentrytitle") if title is not None: vol = meta.findtext("manvolnum") if vol is not None: man2vol[title] = vol citerefs = list(tree.iter("citerefentry")) if citerefs: man2citerefs[title] = citerefs for man, refs in man2citerefs.items(): for ref in refs: title = ref.findtext("refentrytitle") if title is not None: has = ref.findtext("manvolnum") try: should_have = man2vol[title] except KeyError: # Non-systemd man page reference? Ignore. continue if has != should_have: print( f"sed -i '\\|<citerefentry><refentrytitle>{title}" f"</refentrytitle><manvolnum>{has}</manvolnum>" f"</citerefentry>|s|<manvolnum>{has}</manvolnum>|" f"<manvolnum>{should_have}</manvolnum>|' {man}.xml" )
* man: drop whitespace from final <programlisting> linesZbigniew Jędrzejewski-Szmek2024-11-081-3/+3
| | | | | | In the troff output, this doesn't seem to make any difference. But in the html output, the whitespace is sometimes preserved, creating an additional gap before the following content. Drop it everywhere to avoid this.
* tree-wise: use "lightweight" spellingZbigniew Jędrzejewski-Szmek2024-10-181-1/+1
| | | | | Both spellings were used, but the dictionary says that "lightweight" is the standard spelling.
* man: fix typo in unit options sectionKuntal Majumder2024-07-091-1/+1
| | | | Fixes #32918
* man: fix typo in the alias symlink nameZHANG Yuntian2024-07-091-5/+5
| | | Symlink created by Alias will use the value as the file name.
* man: document that separate /usr/local/ must not be used for configZbigniew Jędrzejewski-Szmek2024-06-111-3/+4
| | | | | | | | | | | | | | Since we document /usr/local/lib/systemd/ and other paths for various things, add notes that this is not supported if /usr/local is a separate partition. In systemd.unit, I tried to add the footnote in the table where /usr/local/lib/systemd/ is listed, but that get's rendered as '[sup]a[/sup]' with a mangled footnote at the bottom of the table :( . Also, split paragraphs in one place where the subject changes without any transition. Follow-up for 02f35b1c905ac63ba62f94efebf858412e961fc1. Replaces https://github.com/systemd/systemd/pull/33231.
* man: document /usr/local/lib in search pathsJörg Behrmann2024-06-061-0/+2
|
* man: refer FailureAction= and SuccessAction= for explaining allowed values ↵Yu Watanabe2024-05-171-1/+2
| | | | | | | in JobTimeoutAction= The allowed values are explained in FailureAction= and SuccessAction=, rather than StartLimitAction=.
* core: refuse invalid emergency actions for SuccessAction= and friends in ↵Yu Watanabe2024-05-171-3/+2
| | | | | | | | | user service manager Especially, soft-reboot is not supported by user service manager. Fixes a bug in 13ffc60749df0ca7c76cfcac317b41a05679b364 and 3cf848f6cd2151ccff89073bffb102f966d64ced.
* docs,man: Avoid some ambiguous uses of "may not"Colin Watson2024-05-081-2/+2
| | | | | | | | | | | | Like much English text, the systemd documentation uses "may not" in the sense of both "will possibly not" and "is forbidden to". In many cases this is OK because the context makes it clear, but in others I felt it was possible to read the "is forbidden to" sense by mistake: in particular, I tripped over "the target file may not exist" in systemd.unit(5) before realizing the correct interpretation. Use "might not" or "may choose not to" in these cases to make it clear which sense we mean.
* tree-wide: use "_" rather than "-" as separator in kernel cmdline optionsLennart Poettering2024-02-281-2/+2
| | | | | | | | | | | Most of our kernel cmdline options use underscores as word separators in kernel cmdline options, but there were some exceptions. Let's fix those, and also use underscores. Since our /proc/cmdline parsers don't distinguish between the two characters anyway this should not break anything, but makes sure our own codebase (and in particular docs and log messages) are internally consistent.
* man: mention that preset-all is performed during early bootZbigniew Jędrzejewski-Szmek2024-02-081-1/+9
| | | | | | | | The intro of systemd-firstboot is rewritten to make it clearer how it fits into the big picture. Systemd does some machine-id and presets and systemd-firstboot.service is used to interactively fill in the blanks. Closes #22225.
* core: Add %D specifier for $XDG_DATA_HOMEAdrian Vovk2024-01-051-0/+5
| | | | | | | | | | | We already have specifiers that resolve to $XDG_STATE_HOME, and $XDG_CONFIG_HOME. $XDG_DATA_HOME is in a similar vein. It allows units belonging to the user service manager to correctly look into ~/.local/share. I imagine this would be most useful inside of condition checks (i.e. only run a service on session startup if some data is not found in ~/.local/share) or in the inotify monitoring of a .path unit
* man: use same version in public and system ident.David Tardon2023-12-251-1/+1
|
* man: use <simplelist> at one more placeDavid Tardon2023-12-251-11/+13
|
* man: use <simplelist> for 'See also' sectionsDavid Tardon2023-12-231-22/+22
| | | | | This is just a slight markup improvement; there should be no difference in rendering.
* man: use <simplelist> for file lists in synopsisZbigniew Jędrzejewski-Szmek2023-12-151-27/+31
| | | | | | | | | | | | | | | | | | With <para><filename>…</filename></para>, we get a separate "paragraph" for each line, i.e. entries separated by empty lines. This uses up a lot of space and was only done because docbook makes it hard to insert a newline. In some other places, <literallayout> was used, but then we cannot indent the source text (because the whitespace would end up in the final page). We can get the desired result with <simplelist>. With <simplelist> the items are indented in roff output, but not in html output. In some places this looks better then no indentation, and in others it would probably be better to have no indent. But this is a minor issue and we cannot control that. (I didn't convert all spots. There's a bunch of other man pages which have two lines, e.g. an executable and service file, and it doesn't matter there so much.)
* analyze: add "architectures" verb that lists all known architecturesLennart Poettering2023-12-061-0/+4
|
* core: add WantsMountsFor=Luca Boccassi2023-11-291-0/+10
| | | | | | | | This is the equivalent of RequiresMountsFor=, but adds Wants= instead of Requires=. It will be useful for example for the autogenerated systemd-cryptsetup units. Fixes https://github.com/systemd/systemd/issues/11646
* man: document StartLimitIntervalSec=infinityZbigniew Jędrzejewski-Szmek2023-11-151-0/+2
| | | | | | | | | This seems to work as expected. In the issue, doubts were raised whether it works fine with daemon-reload/daemon-reexec, and it seems to work fine. (The property cannot be set via set-property, the dbus property is 'const'. We could relax this, but that'd be a separate feature.) Closes #29574.
* man: more hyperlinks and other fixesZbigniew Jędrzejewski-Szmek2023-11-061-6/+6
| | | | Closes https://github.com/systemd/systemd/issues/29814.
* man/systemd.unit: add PropagatesStopTo= to reverse property tableMike Yuan2023-10-251-5/+14
|
* pid1: add SurviveFinalKillSignal= to skip units on final sigterm/sigkill spreeLuca Boccassi2023-09-281-0/+14
| | | | | | | | | | | Add a new boolean for units, SurviveFinalKillSignal=yes/no. Units that set it will not have their process receive the final sigterm/sigkill in the shutdown phase. This is implemented by checking if a process is part of a cgroup marked with a user.survive_final_kill_signal xattr (or a trusted xattr if we can't set a user one, which were added only in kernel v5.7 and are not supported in CentOS 8).
* condition: add ConditionSecurity=measured-ukiLennart Poettering2023-09-271-5/+61
| | | | | We have various services that should only run in a measured UKI environment. Let's add an explicit high-level check for that.
* man: update version informationAbderrahim Kitouni2023-09-191-20/+72
| | | | | | | | As I noticed a lot of missing information when trying to implement checking for missing info. I reimplemented the version information script to be more robust, and here is the result. Follow up to ec07c3c80b2b1bfa6788500202006ff85f5ae4f4
* man: add version infoAbderrahim Kitouni2023-08-291-13/+95
| | | | | | | | This tries to add information about when each option was added. It goes back to version 183. The version info is included from a separate file to allow generating it, which would allow more control on the formatting of the final output.
* man/systemd.unit: DefaultTimeoutStartSec= -> DefaultDeviceTimeoutSec=Mike Yuan2023-08-041-1/+1
| | | | | | for device unit job timeouts Follow-up for #24044
* Revert "core: add IgnoreOnSoftReboot= unit option"Luca Boccassi2023-07-231-10/+0
| | | | | | The feature is not ready, postpone it This reverts commit b80fc61e8971283606f9cd0a48e31d0f701c82f1.
* core: add IgnoreOnSoftReboot= unit optionLuca Boccassi2023-07-211-0/+10
| | | | | | | | | | | | | | | | | As it says on the tin, configures the unit to survive a soft reboot. Currently all the following options have to be set by hand: Conflicts=reboot.target kexec.target poweroff.target halt.target Before=reboot.target kexec.target poweroff.target halt.target After=sysinit.target basic.target DefaultDependencies=no IgnoreOnIsolate=yes This is not very user friendly. If new default dependencies are added, or new shutdown/reboot types, they also have to be added manually. The new option is much simpler, easy to find, and does the right thing by default.
* man/systemd.unit: document restart behavior on Upholds=Christian Hesse2023-07-071-1/+1
| | | | | Behavior on constantly failing (or oneshot) unit was unclear. Let's document it here.
* unit: add "cvm" option for ConditionSecurityDaniel P. Berrangé2023-07-061-2/+2
| | | | | | | | The "cvm" flag indicates whether the OS is running inside a confidential virtual machine. Related: https://github.com/systemd/systemd/issues/27604 Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
* execute: add support for XDG_STATE_HOME for placing service state data in ↵Lennart Poettering2023-06-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | --user mode This adds support for the new XDG_STATE_HOME env var that was added to the xdg basedir spec. Previously, because the basedir spec didn't know the concept we'd alias the backing dir for StateDirectory= to the one for ConfigurationDirectory= when runnin in --user mode. With this change we'll make separate. This brings us various benefits, such as proper "systemctl clean" support, where we can clear service state separately from service configuration, now in user mode too. This does not come without complications: retaining compatibility with older setups is difficult, because we cannot possibly identitfy which files in existing populated config dirs are actually "state" and which one are true" configuration. Hence let's deal with this pragmatically: if we detect that a service that has both dirs configured only has the configuration dir existing, then symlink the state dir to the configuration dir to retain compatibility. This is not great, but it's the only somewhat reasonable way out I can see. Fixes: #25739
* core: Add halt and kexec emergency actionsDaan De Meyer2023-06-221-11/+15
| | | | | Let's complete the picture by adding the missing halt and kexec emergency actions.
* man: document OnSuccessJobMode=Frantisek Sumsal2023-06-061-2/+3
| | | | Introduced in 294446dcb9.
* man: document the soft reboot operationLennart Poettering2023-06-021-21/+28
|
* core/unit: make JoinsNamespaceOf= implies the inverse dependencyYu Watanabe2023-05-261-5/+7
| | | | | | | | | | | | | | | Previously, even if a.service has JoinsNamespaceOf=b.service, the inverse direction of reference was not introduced. Hence, a.service is started earlier than b.service, the namespace will not shared with b.service. Also, even if a.service had the reference to b.service, b.service did not. If b.service is freed earlier, then unit_clear_dependencies() does not clear the reference from a to b, and will cause use-after-free on unit_free() for a.service. Let's make JoinsNamespaceOf=b.service in a.service implies the inverse dependency, i.e. JoinsNamespaceOf=a.service for b.service. Then, we can safely free b.service.
* Revert (partially) "man: Clarify when OnFailure= activates after restarts ↵Mike Yuan2023-05-181-2/+1
| | | | | | | | | (#7646)" This reverts part of commit bd2538b50ba283c9ce39142d5d16d90184a55b90, specifically changes to the description of service state between auto-restarts. Fixes #27594
* unit-file: support UpheldBy= in [Install] settings (adding Upholds= depsMike Yuan2023-05-151-17/+22
| | | | | | from .upholds/) Closes #26896
* man: restore description of ConditionControlGroupController=v1|v2Zbigniew Jędrzejewski-Szmek2023-04-011-5/+14
| | | | | | | | | | We use ConditionControlGroupController=v2 in systemd-oomd.service, and also this condition makes sense in general, so it should be documented. This reverts a part of 6d48c7cf736ced70c1c2fef1e1f03618911d04bc. Deprecated commandline options and v1 controller names were removed from the description.
* man: correct/tweak text about unit name syntaxLennart Poettering2023-03-291-12/+12
| | | | | | | | Unit names can be 255 characters long, not 256. We first say "name prefix" and then continue with "unit prefix". Confusing. Couldn't figure out which term is better hence settled on "unit name prefix".
* docs, man: consistently use comma after "For example"Dmitry V. Levin2023-01-231-1/+1
|
* man: minor correctionsZbigniew Jędrzejewski-Szmek2023-01-221-1/+1
| | | | Two issues that were missed in 8b9f092112ce097dd5c72a58a092c4176458889c.
* virt: Support detection of LMHS SRE guestsNeil Moore2022-12-021-0/+1
|
* man: Add documentation for AssertCredential= (#25178)Steve Ramage2022-10-291-0/+1
| | | | | Fixes #25177. Co-authored-by: Steve Ramage <gitcommits@sjrx.net>
* man: use a list for description of ConditionFirmware=Zbigniew Jędrzejewski-Szmek2022-10-091-27/+32
| | | | | Also reduce confusion of <replaceable> and <literal> and reword things for legibility a bit.
* manager: fix/change evaluation of ConditionFirstBootZbigniew Jędrzejewski-Szmek2022-10-011-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code to evaluate the kernel command line option was busted because it was doing 'return b == !!r' at a point where 'r > 0'. Thus we'd return "true" in both cases: $ SYSTEMD_PROC_CMDLINE=systemd.condition-first-boot build/systemd-analyze condition 'ConditionFirstBoot=true' test.service: ConditionFirstBoot=true succeeded. Conditions succeeded. $ SYSTEMD_PROC_CMDLINE=systemd.condition-first-boot build/systemd-analyze condition 'ConditionFirstBoot=false' test.service: ConditionFirstBoot=false succeeded. Conditions succeeded. We only use 'ConditionFirstBoot=true' in units, so this wasn't noticed. But I think the logic is broken in general: the condition should evaluate as true only during initial boot. If we rerun the units at later points, we should not consider ConditionFirstBoot to be true. Also, the first boot logic is also used in pid1 itself. AFAICT, for two things: in first boot machine-id is initialized transiently (this allows first-boot operations to be restarted if boot fails), and preset-all is executed. But this logic was different and separate from the logic to evaluate ConditionFirstBoot. The distinction is abolished, and the operations in pid1 now use the same logic as ConditionFirstBoot, which means that the kernel command line option is checked, and condition_test_first_boot() just tests whether pid1 thinks we're in first boot. This makes things easier to grok for the user: there's just one condition for "first boot" and it applies to both pid1 and units.
* tree-wide: fix typoYu Watanabe2022-09-241-1/+1
|