]>
Commit | Line | Data |
---|---|---|
cdc9189e JR |
1 | # pre/post script for packages supporting systemd units |
2 | # | |
3 | # Authors: Bartlomiej Zimon <uzi18@o2.pl> | |
4 | # Jan Rękorajski <baggins@mimuw.edu.pl> | |
5 | # | |
6 | # Usage: | |
7 | # %systemd_reload | |
8 | # %systemd_service <unit command> service_name1.service service_name2.service | |
9 | # %systemd_service_enable service_name1.service service_name2.service | |
10 | # %systemd_service_disable service_name1.service service_name2.service | |
11 | # %systemd_service_start service_name1.service service_name2.service | |
12 | # %systemd_service_stop service_name1.service service_name2.service | |
13 | # %systemd_service_restart service_name1.service service_name2.service | |
14 | # %systemd_service_reload service_name1.service service_name2.service | |
15 | # | |
16 | # %systemd_post service_name1.service service_name2.service | |
17 | # %systemd_preun service_name1.service service_name2.service | |
18 | # %systemd_trigger service_name1.service service_name2.service | |
19 | # | |
20 | # Sample: | |
21 | # %post | |
22 | # %systemd_post %{name}.service | |
23 | # | |
24 | # %preun | |
25 | # %systemd_preun %{name}.service | |
26 | # | |
27 | # %postun | |
28 | # %systemd_reload | |
29 | # | |
30 | # %triggerpostun -- %{name} < first-version-with-systemd-units | |
31 | # %systemd_trigger %{name}.service | |
32 | # | |
33 | # Requirements: | |
34 | # BuildRequires: rpmbuild(macros) >= 1.671 | |
35 | # Requires: systemd-units >= 38 | |
36 | ||
37 | %systemd_reload /bin/systemd_booted && SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog /bin/systemctl daemon-reload || : | |
38 | ||
39 | %systemd_service_enable() \ | |
40 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
41 | /bin/systemctl preset --preset-mode=enable-only %{*} || : \ | |
42 | /bin/systemd_booted && echo 'Run "/bin/systemctl start %{*}" to start %{*}.' || : \ | |
43 | %{nil} | |
44 | ||
45 | %systemd_service_disable() \ | |
46 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
47 | /bin/systemctl --quiet disable %{*} || : \ | |
48 | %{nil} | |
49 | ||
50 | %systemd_service() \ | |
51 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
52 | /bin/systemd_booted && /bin/systemctl %{*} || : \ | |
53 | %{nil} | |
54 | ||
55 | %systemd_service_start() \ | |
56 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
57 | /bin/systemd_booted && /bin/systemctl start %{*} || : \ | |
58 | %{nil} | |
59 | ||
60 | %systemd_service_stop() \ | |
61 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
62 | /bin/systemd_booted && /bin/systemctl stop %{*} || : \ | |
63 | %{nil} | |
64 | ||
65 | # NOTE: doesn't honour RPM_SKIP_AUTO_RESTART, avoid using | |
66 | %systemd_service_restart() \ | |
67 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
68 | /bin/systemd_booted && /bin/systemctl try-restart %{*} || : \ | |
69 | %{nil} | |
70 | ||
71 | # NOTE: doesn't honour RPM_SKIP_AUTO_RESTART, avoid using | |
72 | %systemd_service_reload() \ | |
73 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
74 | /bin/systemd_booted && /bin/systemctl reload %{*} || : \ | |
75 | %{nil} | |
76 | ||
77 | # NOTE: this trigger disobeys systemd.preset in favour of RPM_ENABLE_SYSTEMD_SERVICE | |
78 | %systemd_trigger() \ | |
79 | want_enable_service() { \ | |
80 | [ -f /etc/sysconfig/rpm ] && . /etc/sysconfig/rpm \ | |
81 | [ ${RPM_ENABLE_SYSTEMD_SERVICE:-yes} = no ] && return 1 \ | |
82 | [ "$(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 \ | |
83 | return 0 \ | |
84 | }\ | |
85 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
86 | for s in %{*}; do \ | |
87 | if want_enable_service $s; then \ | |
88 | /bin/systemctl enable $s || : \ | |
89 | fi \ | |
90 | done \ | |
91 | %{nil} | |
92 | ||
93 | %systemd_post() \ | |
94 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
95 | /bin/systemd_booted && /bin/systemctl daemon-reload || : \ | |
96 | if [ $1 -eq 1 ]; then \ | |
97 | /bin/systemctl preset --preset-mode=enable-only %{*} >/dev/null || : \ | |
98 | /bin/systemd_booted && echo 'Run "/bin/systemctl start %{*}" to start %{*}.' || : \ | |
99 | elif [ -z "$NORESTART" ]; then \ | |
100 | /bin/systemd_booted && /bin/systemctl try-restart %{*} || : \ | |
101 | else \ | |
102 | /bin/systemd_booted && echo 'Run "/bin/systemctl restart %{*}" to restart %{*}.' || : \ | |
103 | fi \ | |
104 | %{nil} | |
105 | ||
106 | %systemd_preun() \ | |
107 | if [ $1 -eq 0 ]; then \ | |
108 | export SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \ | |
109 | /bin/systemd_booted && /bin/systemctl stop %{*} || : \ | |
110 | /bin/systemctl --quiet disable %{*} || : \ | |
111 | fi \ | |
112 | %{nil} | |
113 | ||
114 | %systemdunitdir /lib/systemd/system | |
115 | %systemduserunitdir /usr/lib/systemd/user | |
116 | %systemdtmpfilesdir /usr/lib/tmpfiles.d | |
117 | ||
118 | # BuildRequires: rpmbuild(macros) >= 1.721 | |
119 | %journal_catalog_update() [ ! -x /bin/journalctl ] || /bin/journalctl --update-catalog >/dev/null 2>&1 || : |