# pre/post script for packages supporting systemd units # # Authors: Bartlomiej Zimon # Jan Rękorajski # # Usage: # %systemd_reload # %systemd_service service_name1.service service_name2.service # %systemd_service_enable service_name1.service service_name2.service # %systemd_service_disable service_name1.service service_name2.service # %systemd_service_start service_name1.service service_name2.service # %systemd_service_stop service_name1.service service_name2.service # %systemd_service_restart service_name1.service service_name2.service # %systemd_service_reload service_name1.service service_name2.service # # %systemd_post service_name1.service service_name2.service # %systemd_preun service_name1.service service_name2.service # %systemd_trigger service_name1.service service_name2.service # # Sample: # %post # %systemd_post %{name}.service # # %preun # %systemd_preun %{name}.service # # %postun # %systemd_reload # # %triggerpostun -- %{name} < first-version-with-systemd-units # %systemd_trigger %{name}.service # # Requirements: # BuildRequires: rpmbuild(macros) >= 1.671 # Requires: systemd-units >= 38 %systemd_reload /bin/systemd_booted && SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog /bin/systemctl daemon-reload || : %systemd_service_enable() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemctl preset --preset-mode=enable-only %{*} || : \ /bin/systemd_booted && echo 'Run "/bin/systemctl start %{*}" to start %{*}.' || : \ %{nil} %systemd_service_disable() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemctl --quiet disable %{*} || : \ %{nil} %systemd_service() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl %{*} || : \ %{nil} %systemd_service_start() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl start %{*} || : \ %{nil} %systemd_service_stop() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl stop %{*} || : \ %{nil} # NOTE: doesn't honour RPM_SKIP_AUTO_RESTART, avoid using %systemd_service_restart() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl try-restart %{*} || : \ %{nil} # NOTE: doesn't honour RPM_SKIP_AUTO_RESTART, avoid using %systemd_service_reload() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl reload %{*} || : \ %{nil} # NOTE: this trigger disobeys systemd.preset in favour of RPM_ENABLE_SYSTEMD_SERVICE %systemd_trigger() \ want_enable_service() { \ [ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm \ [ ${RPM_ENABLE_SYSTEMD_SERVICE:-yes} = no ] && return 1 \ [ "$(echo /etc/rc.d/rc[0-6].d/S[0-9][0-9]${1%.service})" = "/etc/rc.d/rc[0-6].d/S[0-9][0-9]${1%.service}" ] && return 1 \ return 0 \ }\ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ for s in %{*}; do \ if want_enable_service $s; then \ /bin/systemctl enable $s || : \ fi \ done \ %{nil} %systemd_post() \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl daemon-reload || : \ if [ $1 -eq 1 ]; then \ /bin/systemctl preset --preset-mode=enable-only %{*} >/dev/null || : \ /bin/systemd_booted && echo 'Run "/bin/systemctl start %{*}" to start %{*}.' || : \ elif [ -z "$NORESTART" ]; then \ /bin/systemd_booted && /bin/systemctl try-restart %{*} || : \ else \ /bin/systemd_booted && echo 'Run "/bin/systemctl restart %{*}" to restart %{*}.' || : \ fi \ %{nil} %systemd_preun() \ if [ $1 -eq 0 ]; then \ export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ /bin/systemd_booted && /bin/systemctl stop %{*} || : \ /bin/systemctl --quiet disable %{*} || : \ fi \ %{nil} %systemdunitdir /lib/systemd/system %systemduserunitdir /usr/lib/systemd/user %systemdtmpfilesdir /usr/lib/tmpfiles.d # BuildRequires: rpmbuild(macros) >= 1.721 %journal_catalog_update() [ ! -x /bin/journalctl ] || /bin/journalctl --update-catalog >/dev/null 2>&1 || :