diff options
-rw-r--r-- | chapter01/changelog.xml | 10 | ||||
-rw-r--r-- | chapter07/systemd-custom.xml | 56 | ||||
-rw-r--r-- | general.ent | 6 | ||||
-rw-r--r-- | packages.ent | 2 |
4 files changed, 70 insertions, 4 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 8fdefa9f7..e3c9f71a6 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -42,6 +42,16 @@ <listitem revision="sysv"> or <listitem revision="systemd"> as appropriate for the entry or if needed the entire day's listitem. --> + <listitem revision="systemd"> + <para>2016-08-09</para> + <itemizedlist> + <listitem> + <para>[dj] - Added explanatory text for systemd-230+ process + lingering changes.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> <para>2016-08-06</para> <itemizedlist> diff --git a/chapter07/systemd-custom.xml b/chapter07/systemd-custom.xml index 26f29beb4..4a5a0187e 100644 --- a/chapter07/systemd-custom.xml +++ b/chapter07/systemd-custom.xml @@ -173,4 +173,60 @@ EOF</userinput></screen> </itemizedlist> </sect2> + + <sect2> + <title>Long Running Processes</title> + + <para>Beginning with systemd-230, all user processes are killed when a + user session is ended, even if nohup is used, or the process uses + <function>daemon()</function> or <function>setsid()</function>. This is a + deliberate change from a historically permissive environment to a more + restrictive one. The new behavior may cause issues if you depend on long + running programs (e.g., <command>screen</command> or + <command>tmux</command>) to remain active after ending your user + session. There are three ways to enable lingering processes to remain after + a user session is ended.</para> + + <itemizedlist> + <listitem> + <para> + <emphasis>Enable process lingering for only needed users</emphasis>: + normal users have permission to enabling process lingering + with the command <command>loginctl enable-linger</command> for their + own user. System administrators can use the same command with a + <parameter>user</parameter> argument to enable for a user. That user + can then use the <command>systemd-run</command> command to start + long running processes. For example: <command>systemd-run --scope + --user /usr/bin/screen</command>. If you enable lingering for your + user, the user@.service will remain even after all login sessions are + closed, and will automatically start at system boot. This has the + advantage of explicitly allowing and disallowing processes to run + after the user session has ended, but breaks backwards compatibility + with tools like <command>nohup</command> and utilities that use + <function>deamon()</function>. + </para> + </listitem> + <listitem> + <para> + <emphasis>Enable system-wide process lingering</emphasis>: + you can set <parameter>KillUserProcesses=no</parameter> in + <filename>/etc/logind.conf</filename> to enable process lingering + globally for all users. This has the benefit of leaving the old + method available to all users at the expense of explicit control. + </para> + </listitem> + <listitem> + <para> + <emphasis>Disable at build-time</emphasis>: You can enable + lingering by default while building systemd by adding the switch + <parameter>--without-kill-user-processes</parameter> to the + <command>configure</command> command for systemd. This completely + disables the ability of systemd to kill user processes at session + end. + </para> + </listitem> + </itemizedlist> + + </sect2> + </sect1> diff --git a/general.ent b/general.ent index 40887a445..cbffce239 100644 --- a/general.ent +++ b/general.ent @@ -1,13 +1,13 @@ -<!ENTITY version "SVN-20160805"> +<!ENTITY version "SVN-20160809"> <!ENTITY short-version "svn"> <!-- Used below in &blfs-book; Change to x.y for release but not -rc releases --> <!ENTITY generic-version "development"> <!-- Use "development" or "x.y[-pre{x}]" --> -<!ENTITY versiond "20160806-systemd"> +<!ENTITY versiond "20160809-systemd"> <!ENTITY short-versiond "systemd"> <!ENTITY generic-versiond "systemd"> -<!ENTITY releasedate "August 6, 2016"> +<!ENTITY releasedate "August 9, 2016"> <!ENTITY copyrightdate "1999-2016"><!-- jhalfs needs a literal dash, not – --> <!ENTITY milestone "7.10"> diff --git a/packages.ent b/packages.ent index c375a90df..af61289d9 100644 --- a/packages.ent +++ b/packages.ent @@ -188,7 +188,7 @@ <!ENTITY findutils-ch6-sbu "1.6 SBU"> <!ENTITY flex-version "2.6.1"> -<!ENTITY flex-size "916 KB"> +<!ENTITY flex-size "816 KB"> <!ENTITY flex-url "https://github.com/westes/flex/releases/download/v&flex-version;/flex-&flex-version;.tar.xz"> <!ENTITY flex-md5 "cd3c86290fc2676a641aefafeb10848a"> <!ENTITY flex-home "http://flex.sourceforge.net"> |