3 %define release 1%{?pldistro:.%{pldistro}}%{?date:.%{date}}
5 Summary: PlanetLab node monitoring tools
10 Group: System Environment/Kernel
11 Source: %{name}-%{version}.tgz
13 Packager: PlanetLab Central <support@planet-lab.org>
14 Distribution: PlanetLab 3.0
15 URL: http://cvs.planet-lab.org/cvs/pl_mom
16 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
18 # swapmon requires vps and bwlimit.py
19 Requires: util-vserver, util-vserver-python
24 pl_mom is a suite of PlanetLab node monitoring tools.
26 swapmon is a swap monitoring daemon. Every 30 seconds, it checks
27 process memory usage. At 90% utilization, resets the slice that is
28 consuming the most physical memory. At 95% utilization, it reboots the
29 machine to avoid a crash.
31 bwmon is a cron job that monitors the average bandwidth usage of each
32 slice and enforces a daily byte limit for each slice.
34 pl_mop is a cron job that "fixes" various common problems with nodes
35 (dead services, ext3 corruption, zombie SSH sessions, etc.).
43 rm -rf $RPM_BUILD_ROOT
46 install -D -m 644 pl_mom.py $RPM_BUILD_ROOT/%{_datadir}/%{name}/pl_mom.py
48 # Bandwidth monitor (bwmon), run periodically
49 install -D -m 755 bwmon.py $RPM_BUILD_ROOT/%{_datadir}/%{name}/bwmon.py
51 # Swap monitoring daemon (swapmon)
52 install -D -m 755 swapmon.py $RPM_BUILD_ROOT/%{_datadir}/%{name}/swapmon.py
53 install -D -m 755 swapmon.init $RPM_BUILD_ROOT/%{_initrddir}/swapmon
56 install -D -m 755 pl_mop.sh $RPM_BUILD_ROOT/usr/local/planetlab/bin/pl_mop.sh
58 # Runs pl_mop and bwmon periodically
59 install -D -m 644 pl_mom.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/pl_mom
62 rm -rf $RPM_BUILD_ROOT
65 chkconfig --add swapmon
67 if [ "$PL_BOOTCD" != "1" ] ; then
68 service swapmon restart
71 # Randomize pl_mop run time
72 M=$((60 * $RANDOM / 32768))
73 H=$((24 * $RANDOM / 32768))
74 sed -i -e "s/@M@/$M/" -e "s/@H@/$H/" %{_sysconfdir}/cron.d/pl_mom
79 # 0 = erase, 1 = upgrade
80 if [ "$1" -eq 0 ]; then
81 if [ "$PL_BOOTCD" != "1" ] ; then
85 chkconfig --del swapmon
91 %defattr(-, root, root, -)
92 %{_datadir}/%{name}/pl_mom.py
93 %{_datadir}/%{name}/bwmon.py
94 %{_datadir}/%{name}/swapmon.py
96 /usr/local/planetlab/bin/pl_mop.sh
97 %{_sysconfdir}/cron.d/pl_mom