diff options
Diffstat (limited to 'nixpkgs/nixos/doc/manual/from_md/development/unit-handling.section.xml')
-rw-r--r-- | nixpkgs/nixos/doc/manual/from_md/development/unit-handling.section.xml | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/nixpkgs/nixos/doc/manual/from_md/development/unit-handling.section.xml b/nixpkgs/nixos/doc/manual/from_md/development/unit-handling.section.xml index a6a654042f6f..4c980e1213a8 100644 --- a/nixpkgs/nixos/doc/manual/from_md/development/unit-handling.section.xml +++ b/nixpkgs/nixos/doc/manual/from_md/development/unit-handling.section.xml @@ -38,8 +38,9 @@ <emphasis role="strong">reload</emphasis> the unit. The NixOS module system allows setting these triggers with the option <link linkend="opt-systemd.services">systemd.services.<name>.reloadTriggers</link>. - If the unit files differ in any way, the following actions are - performed: + There are some additional keys in the <literal>[Unit]</literal> + section that are ignored as well. If the unit files differ in + any way, the following actions are performed: </para> <itemizedlist> <listitem> @@ -71,6 +72,11 @@ <literal>[Service]</literal> section is set to <literal>true</literal> (exposed via <link linkend="opt-systemd.services">systemd.services.<name>.reloadIfChanged</link>). + A little exception is done for units that were deactivated + in the meantime, for example because they require a unit + that got stopped before. These are + <emphasis role="strong">start</emphasis>ed instead of + reloaded. </para> </listitem> <listitem> @@ -88,9 +94,10 @@ </listitem> <listitem> <para> - The rest of the behavior is decided whether the unit has + Further behavior depends on the unit having <literal>X-StopIfChanged</literal> in the - <literal>[Service]</literal> section set (exposed via + <literal>[Service]</literal> section set to + <literal>true</literal> (exposed via <link linkend="opt-systemd.services">systemd.services.<name>.stopIfChanged</link>). This is set to <literal>true</literal> by default and must be explicitly turned off if not wanted. If the flag is @@ -100,17 +107,22 @@ is <emphasis role="strong">restart</emphasis>ed. The goal of the flag is to make sure that the new unit never runs in the old environment which is still in place before the - activation script is run. + activation script is run. This behavior is different when + the service is socket-activated, as outlined in the + following steps. </para> </listitem> <listitem> <para> The last thing that is taken into account is whether the - unit is a service and socket-activated. Due to a bug, this - is currently only done when - <literal>X-StopIfChanged</literal> is set. If the unit is - socket-activated, the socket is stopped and started, and the - service is stopped and to be started by socket activation. + unit is a service and socket-activated. If + <literal>X-StopIfChanged</literal> is + <emphasis role="strong">not</emphasis> set, the service is + <emphasis role="strong">restart</emphasis>ed with the + others. If it is set, both the service and the socket are + <emphasis role="strong">stop</emphasis>ped and the socket is + <emphasis role="strong">start</emphasis>ed, leaving socket + activation to start the service when it’s needed. </para> </listitem> </itemizedlist> |