chiark / gitweb /
man: add systemd-verify(1)
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 20 Jul 2014 23:28:58 +0000 (19:28 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 20 Jul 2014 23:48:16 +0000 (19:48 -0400)
Makefile-man.am
man/systemd-journal-remote.xml
man/systemd-verify.xml [new file with mode: 0644]
man/systemd.unit.xml
src/verify/verify.c

index 4339e50..5cc3081 100644 (file)
@@ -92,6 +92,7 @@ MANPAGES += \
        man/systemd-udevd.service.8 \
        man/systemd-update-done.service.8 \
        man/systemd-update-utmp.service.8 \
+       man/systemd-verify.1 \
        man/systemd.1 \
        man/systemd.automount.5 \
        man/systemd.device.5 \
@@ -1658,6 +1659,7 @@ EXTRA_DIST += \
        man/systemd-update-utmp.service.xml \
        man/systemd-user-sessions.service.xml \
        man/systemd-vconsole-setup.service.xml \
+       man/systemd-verify.xml \
        man/systemd.automount.xml \
        man/systemd.device.xml \
        man/systemd.directives.xml \
index 4065ced..b470e2c 100644 (file)
@@ -21,7 +21,8 @@ You should have received a copy of the GNU Lesser General Public License
 along with systemd; If not, see <http://www.gnu.org/licenses/>.
 -->
 
-<refentry id="systemd-journal-remote" conditional='HAVE_MICROHTTPD'>
+<refentry id="systemd-journal-remote" conditional='HAVE_MICROHTTPD'
+          xmlns:xi="http://www.w3.org/2001/XInclude">
 
   <refentryinfo>
     <title>systemd-journal-remote</title>
@@ -235,21 +236,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
     <variablelist>
       <varlistentry>
-        <term><option>--help</option></term>
-        <term><option>-h</option></term>
-
-        <listitem><para>Print a short help
-        text and exit.</para></listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>--version</option></term>
-
-        <listitem><para>Print a short version
-        string and exit.</para></listitem>
-      </varlistentry>
-
-      <varlistentry>
         <term><option>--split-mode</option></term>
 
         <listitem><para>One of <constant>none</constant> or
@@ -293,6 +279,9 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
         <programlisting>--getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/'</programlisting>
         </listitem>
       </varlistentry>
+
+      <xi:include href="standard-options.xml" xpointer="help" />
+      <xi:include href="standard-options.xml" xpointer="version" />
     </variablelist>
   </refsect1>
 
diff --git a/man/systemd-verify.xml b/man/systemd-verify.xml
new file mode 100644 (file)
index 0000000..128032e
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<!--
+This file is part of systemd.
+
+Copyright 2014 Zbigniew Jędrzejewski-Szmek
+
+systemd is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+systemd is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="systemd-verify"
+          xmlns:xi="http://www.w3.org/2001/XInclude">
+
+  <refentryinfo>
+    <title>systemd-verify</title>
+    <productname>systemd</productname>
+
+    <authorgroup>
+      <author>
+        <contrib>Developer</contrib>
+        <firstname>Zbigniew</firstname>
+        <surname>Jędrzejewski-Szmek</surname>
+        <email>zbyszek@in.waw.pl</email>
+      </author>
+    </authorgroup>
+  </refentryinfo>
+
+  <refmeta>
+    <refentrytitle>systemd-verify</refentrytitle>
+    <manvolnum>1</manvolnum>
+  </refmeta>
+
+  <refnamediv>
+    <refname>systemd-verify</refname>
+    <refpurpose>Check unit file validity</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>systemd-verify</command>
+      <arg choice="opt" rep="repeat">OPTIONS</arg>
+      <arg choice="opt" rep="repeat">FILES</arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+
+  <refsect1>
+    <title>Description</title>
+
+    <para><filename>systemd-verify</filename> will load unit files and
+    potentially print warnings if any errors are detected. Files
+    specified on the command line will be loaded, but also any other
+    units referenced by them.</para>
+
+    <para>This command works by prepending the directories for all
+    command line arguments at the beginning of the unit load path.
+    This means that all units files found in those directories will
+    be used in preference to the unit files found in the standard
+    locations, even if not listed explicitly.</para>
+
+    <para>The following errors are currently detected:</para>
+    <itemizedlist>
+      <listitem><para>unknown sections and directives,
+      </para></listitem>
+
+      <listitem><para>missing dependencies which are required to start
+      the given unit,</para></listitem>
+
+      <listitem><para>man pages listed in
+      <varname>Documentation=</varname> which are not found in the
+      system,</para></listitem>
+
+      <listitem><para>commands listed in <varname>ExecStart=</varname>
+      and similar which are not found in the system or not executable.
+      </para></listitem>
+    </itemizedlist>
+  </refsect1>
+
+  <refsect1>
+    <title>Options</title>
+
+    <para>The following options are understood:</para>
+
+    <variablelist>
+      <varlistentry>
+        <term><option>--no-man</option></term>
+
+        <listitem><para>Do not invoke man to verify the existence
+        of man pages listen in <varname>Documentation=</varname>.
+        </para></listitem>
+      </varlistentry>
+
+      <xi:include href="user-system-options.xml" xpointer="user" />
+      <xi:include href="user-system-options.xml" xpointer="system" />
+
+      <xi:include href="standard-options.xml" xpointer="help" />
+      <xi:include href="standard-options.xml" xpointer="version" />
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>Exit status</title>
+
+    <para>On success, 0 is returned, a non-zero failure
+    code otherwise.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>Examples</title>
+
+    <example>
+      <title>Misspelt directives</title>
+
+      <programlisting>$ cat ./user.slice
+[Unit]
+WhatIsThis=11
+Documentation=man:systemd.nosuchfile(7)
+Requires=different.service
+
+[Service]
+Desription=x
+
+$ systemd-verify ./user.slice
+[./user.slice:9] Unknown lvalue 'WhatIsThis' in section 'Unit'
+[./user.slice:13] Unknown section 'Service'. Ignoring.
+Error: org.freedesktop.systemd1.LoadFailed: Unit different.service failed to load: No such file or directory.
+Failed to create user.slice/start: Invalid argument
+user.slice: man systemd.nosuchfile(7) command failed with code 16
+</programlisting>
+    </example>
+
+    <example>
+      <title>Missing service units</title>
+
+      <programlisting>$ tail ./a.socket ./b.socket
+==> ./a.socket &lt;==
+[Socket]
+ListenStream=100
+
+==> ./b.socket &lt;==
+[Socket]
+ListenStream=100
+Accept=yes
+
+$ systemd-verify ./a.socket ./b.socket
+Service a.service not loaded, a.socket cannot be started.
+Service b@0.service not loaded, b.socket cannot be started.
+</programlisting>
+    </example>
+
+  </refsect1>
+
+  <refsect1>
+    <title>See Also</title>
+    <para>
+      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+    </para>
+  </refsect1>
+</refentry>
index dd3a4a7..dc5e385 100644 (file)
                         <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>systemd-verify</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                         <citerefentry project='man-pages'><refentrytitle>capabilities</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>uname</refentrytitle><manvolnum>1</manvolnum></citerefentry>
index cad79ec..c1a3da8 100644 (file)
@@ -278,8 +278,8 @@ static void help(void) {
                "Check if unit files can be correctly loaded.\n\n"
                "  -h --help           Show this help\n"
                "     --version        Show package version\n"
-               "     --system         Connect to system manager\n"
-               "     --user           Connect to user service manager\n"
+               "     --system         Test system units\n"
+               "     --user           Test user units\n"
                "     --no-man         Do not check for existence of man pages\n"
                , program_invocation_short_name);
 }