units: add distribution-specific units

This commit is contained in:
Lennart Poettering 2010-05-17 01:34:36 +02:00
parent f0b02ca2af
commit 5e6afdd3d3
20 changed files with 532 additions and 16 deletions

View File

@ -66,10 +66,15 @@ dist_udevrules_DATA = \
dist_systemunit_DATA = \
units/emergency.service \
units/getty.target \
units/halt.target \
units/local-fs.target \
units/network.target \
units/nss-lookup.target \
units/poweroff.target \
units/reboot.target \
units/remote-fs.target \
units/rescue.target \
units/rpcbind.target \
units/rtc-set.target \
units/shutdown.target \
@ -80,17 +85,36 @@ dist_systemunit_DATA = \
units/systemd-logger.socket
systemunit_DATA = \
units/basic.target \
units/getty@.service \
units/graphical.target \
units/multi-user.target \
units/systemd-initctl.service \
units/systemd-logger.service \
units/syslog.target
EXTRA_DIST = \
units/basic.target.m4 \
units/getty@.service.m4 \
units/graphical.target.m4 \
units/multi-user.target.m4 \
units/systemd-initctl.service.in \
units/systemd-logger.service.in \
units/syslog.target.in \
LICENSE \
README
if TARGET_FEDORA
dist_systemunit_DATA += \
units/fedora/halt.service \
units/fedora/killall.service \
units/fedora/poweroff.service \
units/fedora/prefdm.service \
units/fedora/rc-local.service \
units/fedora/reboot.service \
units/fedora/sysinit.service
endif
# This is needed because automake is buggy in how it generates the
# rules for C programs, but not Vala programs. We therefore can't
# list the .h files as dependencies if we want make dist to work.
@ -275,22 +299,43 @@ systemadm_SOURCES = \
systemadm_CPPFLAGS = $(AM_CPPFLAGS) $(DBUSGLIB_CFLAGS) $(GTK_CFLAGS) $(VALA_CFLAGS)
systemadm_LDADD = $(DBUSGLIB_LIBS) $(GTK_LIBS)
units/systemd-initctl.service: units/systemd-initctl.service.in Makefile
$(MKDIR_P) units
$(SED) -e 's,@libexecdir\@,$(libexecdir),g' \
SED_PROCESS = \
$(MKDIR_P) units && \
$(SED) -e 's,@libexecdir\@,$(libexecdir),g' \
-e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \
-e 's,@SPECIAL_SYSLOG_SERVICE\@,$(SPECIAL_SYSLOG_SERVICE),g' \
< $< > $@
units/systemd-initctl.service: units/systemd-initctl.service.in Makefile
$(SED_PROCESS)
units/systemd-logger.service: units/systemd-logger.service.in Makefile
$(MKDIR_P) units
$(SED) -e 's,@libexecdir\@,$(libexecdir),g' \
-e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \
< $< > $@
$(SED_PROCESS)
units/syslog.target: units/syslog.target.in Makefile
$(MKDIR_P) units
$(SED) -e 's,@SPECIAL_SYSLOG_SERVICE\@,$(SPECIAL_SYSLOG_SERVICE),g' \
< $< > $@
$(SED_PROCESS)
M4_FLAGS =
if TARGET_FEDORA
M4_FLAGS += -DTARGET_FEDORA=1
endif
M4_PROCESS = \
$(MKDIR_P) units && \
$(M4) -P $(M4_FLAGS) < $< > $@
units/basic.target: units/basic.target.m4 Makefile
$(M4_PROCESS)
units/graphical.target: units/graphical.target.m4 Makefile
$(M4_PROCESS)
units/multi-user.target: units/multi-user.target.m4 Makefile
$(M4_PROCESS)
units/getty@.service: units/getty@.service.m4 Makefile
$(M4_PROCESS)
CLEANFILES = \
src/systemd-interfaces.c \
@ -298,7 +343,11 @@ CLEANFILES = \
src/systemadm.c \
units/systemd-initctl.service \
units/systemd-logger.service \
units/syslog.target
units/syslog.target \
units/basic.target \
units/getty@.service \
units/graphical.target \
units/multi-user.target
if HAVE_XSLTPROC
man/%.5 man/%.7: man/%.xml
@ -318,22 +367,63 @@ install-data-hook:
$(MKDIR_P) -m 0755 \
$(DESTDIR)$(systemunitdir) \
$(DESTDIR)$(sessionunitdir) \
$(DESTDIR)$(systemunitdir)/sockets.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system \
$(DESTDIR)$(pkgsysconfdir)/system/sockets.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants \
$(DESTDIR)$(pkgsysconfdir)/session \
$(DESTDIR)$(sysconfdir)/xdg/systemd \
$(DESTDIR)/cgroup/debug
( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
rm -f session && \
$(LN_S) $(DESTDIR)$(pkgsysconfdir)/session session )
( cd $(DESTDIR)$(pkgsysconfdir)/system/sockets.target.wants && \
$(LN_S) $(pkgsysconfdir)/session session )
( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
rm -f systemd-initctl.socket systemd-logger.socket && \
$(LN_S) $(DESTDIR)$(systemunitdir)/systemd-logger.socket systemd-logger.socket && \
$(LN_S) $(DESTDIR)$(systemunitdir)/systemd-initctl.socket systemd-initctl.socket )
$(LN_S) ../systemd-logger.socket systemd-logger.socket && \
$(LN_S) ../systemd-initctl.socket systemd-initctl.socket )
( cd $(DESTDIR)$(sessionunitdir) && \
rm -f shutdown.target sockets.target && \
$(LN_S) ../system/shutdown.target shutdown.target && \
$(LN_S) ../system/sockets.target sockets.target )
( cd $(DESTDIR)$(systemunitdir) && \
rm -f runlevel0.target runlevel1.target runlevel6.target && \
$(LN_S) poweroff.target runlevel0.target && \
$(LN_S) rescue.target runlevel1.target && \
$(LN_S) reboot.target runlevel6.target )
( cd $(DESTDIR)$(pkgsysconfdir)/system && \
rm -f default.target ctrl-alt-del.target kbrequest.target && \
$(LN_S) $(systemunitdir)/graphical.target default.target && \
$(LN_S) $(systemunitdir)/reboot.target ctrl-alt-del.target && \
$(LN_S) $(systemunitdir)/rescue.target kbrequest.target && \
rm -f runlevel2.target runlevel3.target runlevel4.target runlevel5.target && \
$(LN_S) $(systemunitdir)/multi-user.target runlevel2.target && \
$(LN_S) $(systemunitdir)/multi-user.target runlevel3.target && \
$(LN_S) $(systemunitdir)/multi-user.target runlevel4.target && \
$(LN_S) $(systemunitdir)/graphical.target runlevel5.target )
( cd $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants && \
rm -f getty@tty1.service getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service && \
$(LN_S) $(systemunitdir)/getty@.service getty@tty1.service && \
$(LN_S) $(systemunitdir)/getty@.service getty@tty2.service && \
$(LN_S) $(systemunitdir)/getty@.service getty@tty3.service && \
$(LN_S) $(systemunitdir)/getty@.service getty@tty4.service && \
$(LN_S) $(systemunitdir)/getty@.service getty@tty5.service && \
$(LN_S) $(systemunitdir)/getty@.service getty@tty6.service )
( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
rm -f getty.target && \
$(LN_S) $(systemunitdir)/getty.target getty.target )
if TARGET_FEDORA
( cd $(DESTDIR)$(pkgsysconfdir)/system/graphical.target.wants && \
rm -f prefdm.service && \
$(LN_S) $(systemunitdir)/prefdm.service prefdm.service )
( cd $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants && \
rm -f rc-local.service && \
$(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
( cd $(DESTDIR)$(systemunitdir) && \
rm -f local.service && \
$(LN_S) rc-local.service local.service )
endif
DISTCHECK_CONFIGURE_FLAGS = \
--with-udevrulesdir=$$dc_install_base/$(udevrulesdir)

View File

@ -142,6 +142,8 @@ AC_SUBST(VAPIDIR)
AC_PATH_PROG([XSLTPROC], [xsltproc])
AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x)
AC_PATH_PROG([M4], [m4])
AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, arch, gentoo or other]))
if test "z$with_distro" = "z"; then
if test "$cross_compiling" = yes; then

4
units/.gitignore vendored
View File

@ -1,3 +1,7 @@
systemd-initctl.service
systemd-logger.service
syslog.target
basic.target
graphical.target
multi-user.target
getty@.service

28
units/basic.target.m4 Normal file
View File

@ -0,0 +1,28 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Basic System
Requires=local-fs.target swap.target sockets.target
After=local-fs.target swap.target sockets.target
m4_ifdef(`TARGET_FEDORA',
# Hook in Fedora's /etc/rc.d/rc.sysinit
Requires=sysinit.service
After=sysinit.service)

1
units/fedora/Makefile Symbolic link
View File

@ -0,0 +1 @@
../../src/Makefile

29
units/fedora/halt.service Normal file
View File

@ -0,0 +1,29 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Halt
Requires=shutdown.target killall.service
After=shutdown.target killall.service
[Service]
Type=finish
Environment=INIT_HALT=HALT
Environment=RUNLEVEL=0
ExecStart=/etc/init.d/halt start

View File

@ -0,0 +1,25 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Kill All Processes
[Service]
Type=finish
ExecStart=/etc/init.d/killall start

View File

@ -0,0 +1,28 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Power-Off
Requires=shutdown.target killall.service
After=shutdown.target killall.service
[Service]
Type=finish
Environment=RUNLEVEL=0
ExecStart=/etc/init.d/halt start

View File

@ -0,0 +1,27 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Display Manager
Before=graphical.target
After=basic.target syslog.target messagebus.service haldaemon.service
[Service]
ExecStart=/etc/X11/prefdm -nodaemon
Type=simple

View File

@ -0,0 +1,31 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=/etc/rc.local Compatibility
Requires=basic.target
# The rcN.d symlink uses the name "local" while the script itself is
# called "rc.local", hence carry both names here.
Names=rc-local.service local.service
[Service]
ExecStart=/etc/rc.local start
Type=simple
SysVStartPriority=99

View File

@ -0,0 +1,28 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Reboot
Requires=shutdown.target killall.service
After=shutdown.target killall.service
[Service]
Type=finish
Environment=RUNLEVEL=6
ExecStart=/etc/init.d/reboot start

View File

@ -0,0 +1,26 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=System Initialization
Before=local-fs.target remote-fs.target swap.target sockets.target
[Service]
ExecStart=/etc/rc.d/rc.sysinit
Type=finish

19
units/getty.target Normal file
View File

@ -0,0 +1,19 @@
# 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/>.
[Unit]
Description=Login Prompts

29
units/getty@.service.m4 Normal file
View File

@ -0,0 +1,29 @@
# 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/>.
# See systemd.special(7) for details
m4_ifdef(`TARGET_FEDORA', m4_define(`GETTY', `/sbin/mingetty'))m4_dnl
m4_ifdef(`TARGET_DEBIAN', m4_define(`GETTY', `/sbin/getty 38400'))m4_dnl
[Unit]
Description=Getty on %I
Before=getty.target
After=basic.target
[Service]
Type=simple
ExecStart=GETTY %I

27
units/graphical.target.m4 Normal file
View File

@ -0,0 +1,27 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Graphical Interface
Requires=multi-user.target
After=multi-user.target
m4_ifdef(`TARGET_FEDORA',
# On Fedora Runlevel 5 is graphical login
Names=runlevel5.target)

23
units/halt.target Normal file
View File

@ -0,0 +1,23 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Halt
Requires=halt.service
After=halt.service

View File

@ -0,0 +1,27 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Multi-User
Requires=basic.target
After=basic.target
m4_ifdef(`TARGET_FEDORA',
# On Fedora Runlevel 3 is multi-user
Names=runlevel3.target)

24
units/poweroff.target Normal file
View File

@ -0,0 +1,24 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Power-Off
Names=runlevel0.target
Requires=poweroff.service
After=poweroff.service

24
units/reboot.target Normal file
View File

@ -0,0 +1,24 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Reboot
Names=runlevel6.target
Requires=reboot.service
After=reboot.service

24
units/rescue.target Normal file
View File

@ -0,0 +1,24 @@
# 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/>.
# See systemd.special(7) for details
[Unit]
Description=Rescue Prompt
Requires=basic.target
After=basic.target
Names=runlevel1.target