systemd: include systemd unit file support

Allow having systemd handling the life cycle of the ModemManager process.
This commit is contained in:
Aleksander Morgado
2013-02-06 17:32:59 +01:00
parent 596c9ea508
commit 222825d642
7 changed files with 71 additions and 11 deletions
+36 -11
View File
@@ -1,4 +1,11 @@
edit = @sed \
-e 's|@sbindir[@]|$(sbindir)|g' \
-e 's|@sysconfdir[@]|$(sysconfdir)|g' \
-e 's|@localstatedir[@]|$(localstatedir)|g' \
-e 's|@libexecdir[@]|$(libexecdir)|g'
# DBus Service file
dbusservicedir = $(DBUS_SYS_DIR)
dbusservice_DATA = org.freedesktop.ModemManager1.conf
@@ -14,17 +21,28 @@ org.freedesktop.ModemManager1.conf: $(top_srcdir)/data/$(dbusservice_file_nopol
endif
# DBus Activation file
edit = @sed \
-e 's|@sbindir[@]|$(sbindir)|g' \
-e 's|@sysconfdir[@]|$(sysconfdir)|g' \
-e 's|@localstatedir[@]|$(localstatedir)|g' \
-e 's|@libexecdir[@]|$(libexecdir)|g'
dbusactivationdir = $(datadir)/dbus-1/system-services
dbusactivation_in_files = org.freedesktop.ModemManager1.service.in
dbusactivation_DATA = $(dbusactivation_in_files:.service.in=.service)
%service: %service.in
# systemd unit file
systemdsystemunitdir = $(SYSTEMD_UNIT_DIR)
systemdsystemunit_in_files = ModemManager.service.in
if HAVE_SYSTEMD
systemdsystemunit_DATA = ModemManager.service
ModemManager.service: ModemManager.service.in
$(edit) $< >$@
endif
# DBus Activation file
dbusactivationdir = $(datadir)/dbus-1/system-services
dbusactivation_DATA = org.freedesktop.ModemManager1.service
dbusactivation_in_files_systemd = org.freedesktop.ModemManager1.service.systemd.in
dbusactivation_in_files_nosystemd = org.freedesktop.ModemManager1.service.nosystemd.in
if HAVE_SYSTEMD
org.freedesktop.ModemManager1.service: org.freedesktop.ModemManager1.service.systemd.in
$(edit) $< >$@
else
org.freedesktop.ModemManager1.service: org.freedesktop.ModemManager1.service.nosystemd.in
$(edit) $< >$@
endif
# Icon
@@ -59,8 +77,15 @@ DISTCLEANFILES = \
$(dbusactivation_DATA) \
$(dbusservice_DATA)
if HAVE_SYSTEMD
DISTCLEANFILES += $(systemdsystemunit_DATA)
endif
EXTRA_DIST = \
$(dbusactivation_in_files) \
$(systemdsystemunit_in_files) \
$(dbusactivation_in_files_systemd) \
$(dbusactivation_in_files_nosystemd) \
$(dbusservice_file_polkit) \
$(dbusservice_file_nopolkit) \
$(icon_DATA) \
+13
View File
@@ -0,0 +1,13 @@
[Unit]
Description=Modem Manager
After=syslog.target
[Service]
Type=dbus
BusName=org.freedesktop.ModemManager1
ExecStart=@sbindir@/ModemManager
StandardError=null
[Install]
WantedBy=multi-user.target
Alias=dbus-org.freedesktop.ModemManager1.service
@@ -0,0 +1,11 @@
# This D-Bus service activation file is only for systemd support since
# an auto-activated NetworkManager would be quite surprising for those people
# who have MM installed but turned off. Thus the Exec path available to
# D-Bus is /bin/false, but systemd knows the real Exec path due to the MM
# systemd .service file.
[D-BUS Service]
Name=org.freedesktop.ModemManager1
Exec=/bin/false
User=root
SystemdService=dbus-org.freedesktop.ModemManager1.service