Run updatedb from via systemd timer instead of cron
This commit is contained in:
parent
b535ab95f0
commit
6795a4954c
@ -1,5 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
nodevs=$(< /proc/filesystems awk '$1 == "nodev" && $2 != "rootfs" && $2 != "zfs" { print $2 }')
|
||||
renice +19 -p $$ >/dev/null 2>&1
|
||||
ionice -c2 -n7 -p $$ >/dev/null 2>&1
|
||||
/usr/bin/updatedb -f "$nodevs"
|
14
mlocate-updatedb.service
Normal file
14
mlocate-updatedb.service
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Update a database for mlocate
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/libexec/mlocate-run-updatedb
|
||||
Nice=19
|
||||
IOSchedulingClass=2
|
||||
IOSchedulingPriority=7
|
||||
|
||||
PrivateTmp=true
|
||||
PrivateDevices=true
|
||||
PrivateNetwork=true
|
||||
ProtectSystem=true
|
10
mlocate-updatedb.timer
Normal file
10
mlocate-updatedb.timer
Normal file
@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Updates mlocate database every day
|
||||
|
||||
[Timer]
|
||||
OnCalendar=daily
|
||||
AccuracySec=24h
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
30
mlocate.spec
30
mlocate.spec
@ -3,16 +3,18 @@
|
||||
Summary: An utility for finding files by name
|
||||
Name: mlocate
|
||||
Version: 0.26
|
||||
Release: 10%{?dist}
|
||||
Release: 11%{?dist}
|
||||
License: GPLv2
|
||||
URL: https://fedorahosted.org/mlocate/
|
||||
Group: Applications/System
|
||||
Source0: https://fedorahosted.org/releases/m/l/mlocate/mlocate-%{version}.tar.xz
|
||||
Source1: updatedb.conf
|
||||
Source2: mlocate.cron
|
||||
Requires: crontabs
|
||||
Source2: mlocate-run-updatedb
|
||||
Source3: mlocate-updatedb.service
|
||||
Source4: mlocate-updatedb.timer
|
||||
Requires(pre): shadow-utils
|
||||
Requires(post): grep, sed
|
||||
BuildRequires: systemd
|
||||
Provides: bundled(gnulib)
|
||||
Obsoletes: slocate <= 2.7-30
|
||||
|
||||
@ -36,7 +38,10 @@ make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' groupname=slocate
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT{%{_sysconfdir},/etc/cron.daily}
|
||||
install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/updatedb.conf
|
||||
install -p -m 750 %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/mlocate
|
||||
install -D -p -m 750 %{SOURCE2} $RPM_BUILD_ROOT%{_libexecdir}/mlocate-run-updatedb
|
||||
install -D -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/mlocate-updatedb.service
|
||||
install -D -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir}/mlocate-updatedb.timer
|
||||
|
||||
# %%ghost semantics is so stupid
|
||||
touch $RPM_BUILD_ROOT%{_localstatedir}/lib/mlocate/mlocate.db
|
||||
|
||||
@ -50,18 +55,33 @@ exit 0
|
||||
if /bin/grep -q '^[^#]*DAILY_UPDATE' %{_sysconfdir}/updatedb.conf; then
|
||||
/bin/sed -i.rpmsave -e '/DAILY_UPDATE/s/^/#/' %{_sysconfdir}/updatedb.conf
|
||||
fi
|
||||
%systemd_post mlocate-updatedb.timer
|
||||
|
||||
%preun
|
||||
%systemd_preun mlocate-updatedb.timer
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart mlocate-updatedb.timer
|
||||
|
||||
%triggerin -- %{name} < 0.26-11
|
||||
/usr/bin/systemctl start mlocate-updatedb.timer
|
||||
|
||||
%files -f mlocate.lang
|
||||
%doc AUTHORS COPYING NEWS README
|
||||
%attr(0700,-,-) %config(noreplace) /etc/cron.daily/mlocate
|
||||
%config(noreplace) %{_sysconfdir}/updatedb.conf
|
||||
%attr(2711,root,slocate) %{_bindir}/locate
|
||||
%{_unitdir}/mlocate-updatedb.service
|
||||
%{_unitdir}/mlocate-updatedb.timer
|
||||
%{_libexecdir}/mlocate-run-updatedb
|
||||
%{_bindir}/updatedb
|
||||
%{_mandir}/man*/*
|
||||
%dir %attr(0750,root,slocate) %{_localstatedir}/lib/mlocate
|
||||
%ghost %attr(0640,root,slocate) %{_localstatedir}/lib/mlocate/mlocate.db
|
||||
|
||||
%changelog
|
||||
* Tue Jun 9 2015 Michal Sekletar <msekleta@redhat.com> - 0.26-11
|
||||
- migrate from cron job to systemd timer
|
||||
|
||||
* Tue May 26 2015 Michal Sekletar <msekleta@redhat.com> - 0.26-10
|
||||
- prune path /var/lib/ceph (#1223582)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user