diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2013-02-06 15:40:28 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2013-02-06 17:32:59 +0100 |
commit | 222825d642fd3148caf3168c6e9a33f02b4f3733 (patch) | |
tree | 2cff6e164e0c3dd9a62a9be69b0cc109f09ddecd /data | |
parent | 596c9ea508c005bd1e3b01b439ac5872c926d7cf (diff) |
systemd: include systemd unit file support
Allow having systemd handling the life cycle of the ModemManager process.
Diffstat (limited to 'data')
-rw-r--r-- | data/Makefile.am | 43 | ||||
-rw-r--r-- | data/ModemManager.service.in | 13 | ||||
-rw-r--r-- | data/org.freedesktop.ModemManager1.service.nosystemd.in (renamed from data/org.freedesktop.ModemManager1.service.in) | 0 | ||||
-rw-r--r-- | data/org.freedesktop.ModemManager1.service.systemd.in | 11 |
4 files changed, 58 insertions, 9 deletions
diff --git a/data/Makefile.am b/data/Makefile.am index 0f7618df..eb87359b 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -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 +# 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 -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 +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) \ diff --git a/data/ModemManager.service.in b/data/ModemManager.service.in new file mode 100644 index 00000000..b59caeae --- /dev/null +++ b/data/ModemManager.service.in @@ -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 diff --git a/data/org.freedesktop.ModemManager1.service.in b/data/org.freedesktop.ModemManager1.service.nosystemd.in index 4e3a273f..4e3a273f 100644 --- a/data/org.freedesktop.ModemManager1.service.in +++ b/data/org.freedesktop.ModemManager1.service.nosystemd.in diff --git a/data/org.freedesktop.ModemManager1.service.systemd.in b/data/org.freedesktop.ModemManager1.service.systemd.in new file mode 100644 index 00000000..441dc1d6 --- /dev/null +++ b/data/org.freedesktop.ModemManager1.service.systemd.in @@ -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 |