summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile.am58
-rw-r--r--configure.ac50
-rw-r--r--man/systemd.service.xml213
-rw-r--r--man/systemd.unit.xml121
5 files changed, 429 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore
index b9cb51c0e7..b83dd9acd7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,7 @@
+*.5
+*.html
*~
+*.tar.gz
test-ns
test-loopback
systemd-initctl.service
diff --git a/Makefile.am b/Makefile.am
index 8ad1969bdc..e562b18a2d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,12 +17,12 @@
ACLOCAL_AMFLAGS = -I m4
-pkgsysconfdir=$(sysconfdir)/systemd
dbuspolicydir=$(sysconfdir)/dbus-1/system.d
-udevrulesdir=/lib/udev/rules.d
+udevrulesdir=@udevrulesdir@
+pkgsysconfdir=$(sysconfdir)/systemd
systemunitdir=$(pkgdatadir)/system
-sessionunitdir=$(pkgdatadir)/system
+sessionunitdir=$(pkgdatadir)/session
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
@@ -35,8 +35,9 @@ AM_CPPFLAGS = \
-DCGROUP_AGENT_PATH=\"$(pkglibexecdir)/systemd-cgroups-agent\" \
-DSYSTEMD_BINARY_PATH=\"$(sbindir)/systemd\"
-# -DSYSTEMD_BINARY_PATH=\"/home/lennart/projects/systemd/systemd\"
-VALA_CFLAGS=-Wno-unused-variable -Wno-unused-function
+VALA_CFLAGS = \
+ -Wno-unused-variable \
+ -Wno-unused-function
sbin_PROGRAMS = \
systemd
@@ -60,27 +61,24 @@ noinst_PROGRAMS = \
test-ns \
test-loopback
-dbuspolicy_DATA = \
+dist_dbuspolicy_DATA = \
org.freedesktop.systemd1.conf
-udevrules_DATA = \
+dist_udevrules_DATA = \
99-systemd.rules
-systemunit_DATA = \
+dist_systemunit_DATA = \
units/emergency.service \
- systemd-initctl.service \
units/systemd-initctl.socket \
- systemd-logger.service \
units/systemd-logger.socket
+systemunit_DATA = \
+ systemd-initctl.service \
+ systemd-logger.service
+
EXTRA_DIST = \
- org.freedesktop.systemd1.conf \
- 99-systemd.rules \
- units/emergency.service \
units/systemd-initctl.service.in \
- units/systemd-initctl.socket \
units/systemd-logger.service.in \
- units/systemd-logger.socket \
LICENSE \
README
@@ -147,6 +145,21 @@ EXTRA_DIST += \
linux/auto_dev-ioctl.h \
initreq.h
+dist_man_MANS = \
+ systemd.unit.5 \
+ systemd.service.5
+
+HTMLMANS = \
+ systemd.unit.html \
+ systemd.service.html
+
+dist_noinst_DATA = \
+ $(HTMLMANS)
+
+EXTRA_DIST += \
+ man/systemd.unit.xml \
+ man/systemd.service.xml
+
systemd_SOURCES = \
$(COMMON_SOURCES) \
main.c
@@ -251,6 +264,18 @@ CLEANFILES = \
systemd-initctl.service \
systemd-logger.service
+if HAVE_XSLTPROC
+%.5: man/%.xml
+ $(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+%.html: man/%.xml
+ $(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/xhtml-1_1/docbook.xsl $<
+
+CLEANFILES += \
+ $(dist_man_MANS) \
+ $(HTMLMANS)
+endif
+
install-data-hook:
$(MKDIR_P) -m 0755 \
$(DESTDIR)$(pkgsysconfdir)/system \
@@ -259,3 +284,6 @@ install-data-hook:
$(DESTDIR)/cgroup/debug
rm -f $(DESTDIR)$(sysconfdir)/xdg/systemd/session
ln -sf $(DESTDIR)$(pkgsysconfdir)/session $(DESTDIR)$(sysconfdir)/xdg/systemd/session
+
+DISTCHECK_CONFIGURE_FLAGS = \
+ --with-udevrulesdir=$$dc_install_base/$(udevrulesdir)
diff --git a/configure.ac b/configure.ac
index 65353d52fa..de61b2d52f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,7 +43,43 @@ AM_PROG_CC_C_O
AC_PROG_GCC_TRADITIONAL
AC_USE_SYSTEM_EXTENSIONS
-CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option -Wno-missing-field-initializers])
+CC_CHECK_CFLAGS_APPEND([ \
+ -Wall \
+ -W \
+ -Wextra \
+ -pipe \
+ -Wno-long-long \
+ -Winline \
+ -Wvla \
+ -Wno-overlength-strings \
+ -Wundef \
+ -Wformat=2 \
+ -Wlogical-op \
+ -Wsign-compare \
+ -Wformat-security \
+ -Wmissing-include-dirs \
+ -Wformat-nonliteral \
+ -Wold-style-definition \
+ -Wpointer-arith \
+ -Winit-self \
+ -Wdeclaration-after-statement \
+ -Wfloat-equal \
+ -Wmissing-prototypes \
+ -Wstrict-prototypes \
+ -Wredundant-decls \
+ -Wmissing-declarations \
+ -Wmissing-noreturn \
+ -Wshadow \
+ -Wendif-labels \
+ -Wcast-align \
+ -Wstrict-aliasing=2 \
+ -Wwrite-strings \
+ -Wno-unused-parameter \
+ -ffast-math \
+ -Wp,-D_FORTIFY_SOURCE=2 \
+ -fno-common \
+ -fdiagnostics-show-option \
+ -Wno-missing-field-initializers])
AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])])
AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
@@ -51,6 +87,7 @@ AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers n
# This makes sure pkg.m4 is available.
m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
+
PKG_CHECK_MODULES(UDEV, [ libudev ])
AC_SUBST(UDEV_CFLAGS)
AC_SUBST(UDEV_LIBS)
@@ -98,6 +135,9 @@ AC_SUBST(CGROUP_LIBS)
AM_PROG_VALAC([0.7])
AC_SUBST(VAPIDIR)
+AC_PATH_PROG([XSLTPROC], [xsltproc])
+AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x)
+
AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, arch, gentoo, or none]))
if test "z$with_distro" = "z"; then
if test "$cross_compiling" = yes; then
@@ -174,6 +214,13 @@ AM_CONDITIONAL(TARGET_GENTOO, test x"$with_distro" = xgentoo)
AC_DEFINE_UNQUOTED(SPECIAL_DBUS_SERVICE, ["$special_dbus_service"], [D-Bus service name])
AC_DEFINE_UNQUOTED(SPECIAL_SYSLOG_SERVICE, ["$special_syslog_service"], [syslog service name])
+AC_ARG_WITH([udevrulesdir],
+ AS_HELP_STRING([--with-udevrulesdir=DIR], [Diectory for udev rules]),
+ [],
+ [with_udevrulesdir=/lib/udev/rules.d])
+AC_SUBST([udevrulesdir], [$with_udevrulesdir])
+
+
AC_OUTPUT([Makefile])
echo "
@@ -185,4 +232,5 @@ echo "
Syslog service: ${special_syslog_service}
D-Bus service: ${special_dbus_service}
Gtk: ${have_gtk}
+ udev rules dir: ${with_udevrulesdir}
"
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
new file mode 100644
index 0000000000..5285ce3d52
--- /dev/null
+++ b/man/systemd.service.xml
@@ -0,0 +1,213 @@
+<?xml version='1.0'?> <!--*-nxml-*-->
+<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
+<!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 2010 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 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
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="systemd.service">
+ <refentryinfo>
+ <title>systemd.service</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd.service</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd.service</refname>
+ <refpurpose>systemd service configuration files</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>systemd.service</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>A configuration file ending in .service encodes
+ information about a process controlled and supervised
+ by systemd.</para>
+
+ <para>This man page lists the configuration options
+ specific to this unit type. See
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ for the common options of all unit configuration
+ files.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><varname>Type=</varname></term>
+ <listitem>
+ <para>One of
+ <literal>forking</literal>,
+ <literal>simple</literal>,
+ <literal>finish</literal>,
+ <literal>dbus</literal>.</para>
+
+ <para>If set to
+ <literal>forking</literal>
+ (the default) it is expected
+ that the process configured
+ with
+ <varname>ExecStart=</varname>
+ will start up and call
+ <function>fork()</function>. The
+ parent process is expected to
+ finish when start-up is
+ complete and all communication
+ channels set up. The child
+ continues to run as the main
+ daemon process. This is the
+ behaviour of traditional UNIX
+ daemons. If this setting is
+ used it is recommended to also
+ use the
+ <varname>PIDFile=</varname>
+ option, so that systemd can
+ identify the main process of
+ the daemon. systemd will start
+ follow-up units as soon as the
+ parent process exited.</para>
+
+ <para>If set to
+ <literal>simple</literal> (the
+ recommended value) it is
+ expected that the process
+ configured with
+ <varname>ExecStart=</varname>
+ is the main process of the
+ daemon. In this mode
+ communication channels must be
+ available before the daemon is
+ started up, as systemd will
+ immediately start follow-up
+ units.</para>
+
+ <para>Behaviour of
+ <literal>finish</literal> is
+ similar to
+ <literal>simple</literal>,
+ however it is expected that
+ the process has to exit before
+ systemd starts follow-up
+ units. <varname>ValidNoProcess=</varname>
+ is particularly useful for
+ this type of service.</para>
+
+ <para>Behaviour of
+ <literal>dbus</literal> is
+ similar to
+ <literal>simple</literal>,
+ however it is expected that
+ the daemon acquires a name on
+ the D-Bus bus, as configured
+ by
+ <varname>BusName=</varname>. Follow-up
+ units will be started after
+ the name has been
+ acquired.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><varname>ValidNoProcess=</varname></term>
+ <listitem>
+ <para>Takes a boolean value
+ that specifies whether the service
+ shall be considered active
+ even when all its processes
+ exited. Defaults to <literal>no</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>PIDFile=</varname></term>
+ <listitem>
+ <para>Takes an absolute file
+ name pointing to the PID file
+ of this daemon. Use of this
+ option is recommended for
+ services where
+ <varname>Type=</varname> is
+ set to
+ <literal>forking</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>BusName=</varname></term>
+ <listitem>
+ <para>Takes a D-Bus bus name
+ that this service is reachable
+ as. This option is mandatory
+ for services where
+ <varname>Type=</varname> is
+ set to
+ <literal>dbus</literal>, but
+ its use is otherwise
+ recommended as well if the
+ process takes a name on the
+ D-Bus bus.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><varname>ExecStart=</varname></term>
+ <listitem>
+ <para>Takes a command line
+ that is executed when this
+ service shall be started
+ up. The first word of the
+ command line must be an
+ absolute file name. It is
+ mandatory to set this option
+ for all services.</para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
new file mode 100644
index 0000000000..cfa1b09499
--- /dev/null
+++ b/man/systemd.unit.xml
@@ -0,0 +1,121 @@
+<?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 2010 Lennart Poettering
+
+ systemd is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 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
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<refentry id="systemd.unit">
+
+ <refentryinfo>
+ <title>systemd.unit</title>
+ <productname>systemd</productname>
+
+ <authorgroup>
+ <author>
+ <contrib>Developer</contrib>
+ <firstname>Lennart</firstname>
+ <surname>Poettering</surname>
+ <email>lennart@poettering.net</email>
+ </author>
+ </authorgroup>
+ </refentryinfo>
+
+ <refmeta>
+ <refentrytitle>systemd.unit</refentrytitle>
+ <manvolnum>5</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname>systemd.unit</refname>
+ <refpurpose>systemd unit configuration files</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <para><filename>systemd.service</filename></para>
+ <para><filename>systemd.socket</filename></para>
+ <para><filename>systemd.device</filename></para>
+ <para><filename>systemd.mount</filename></para>
+ <para><filename>systemd.automount</filename></para>
+ <para><filename>systemd.swap</filename></para>
+ <para><filename>systemd.target</filename></para>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>A unit configuration file encodes information
+ about a service, a socket, a mount point, an automount
+ point, a swap file or patition, or a start-up target
+ controlled and supervised by systemd. The syntax is
+ inspired by XDG <filename>.desktop</filename> files,
+ which are in turn inspired by Windows
+ <filename>.ini</filename> files.</para>
+
+ <para>This man pages lists the common configuration
+ options of the various unit types.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Options</title>
+
+ <variablelist>
+ <varlistentry>
+ <term>Names=</term>
+ <listitem>
+ <para>Additional names for this unit. The names
+ listed here mus have the same suffix (i.e. type)
+ as the identifier name. This option may be
+ specified more than once.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Requires=</term>
+ <listitem>
+ <para>Dependencies on other
+ units. If this units get
+ activated the units listed
+ here will be activated as
+ well. If one of the other
+ units gets deactivated or its
+ activation fails, this unit
+ will be deactivated. This
+ option may be specified more
+ than once.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ </para>
+ </refsect1>
+
+</refentry>