10 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
12 Summary: PlanetLab node monitoring tools
17 Group: System Environment/Kernel
18 Source: %{name}-%{version}.tgz
20 Packager: PlanetLab Central <support@planet-lab.org>
21 Distribution: PlanetLab %{plrelease}
22 URL: %(echo %{url} | cut -d ' ' -f 2)
23 #URL: http://cvs.planet-lab.org/cvs/pl_mom
24 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
26 # swapmon requires vps and vkill
27 Requires: util-vserver, util-vserver-python
28 # for bwlimit used in swapmon
29 Requires: plnode-utils
34 pl_mom is a suite of PlanetLab node monitoring tools.
36 swapmon is a swap monitoring daemon. Every 30 seconds, it checks
37 process memory usage. At 90% utilization, resets the slice that is
38 consuming the most physical memory. At 95% utilization, it reboots the
39 machine to avoid a crash.
41 pl_mop is a cron job that "fixes" various common problems with nodes
42 (dead services, ext3 corruption, zombie SSH sessions, etc.).
50 rm -rf $RPM_BUILD_ROOT
53 install -D -m 644 pl_mom.py $RPM_BUILD_ROOT/%{_datadir}/%{name}/pl_mom.py
55 # Bandwidth monitor (bwmon), run periodically
56 #install -D -m 755 bwmon.py $RPM_BUILD_ROOT/%{_datadir}/%{name}/bwmon.py
58 # Swap monitoring daemon (swapmon)
59 install -D -m 755 swapmon.py $RPM_BUILD_ROOT/%{_datadir}/%{name}/swapmon.py
60 install -D -m 755 swapmon.init $RPM_BUILD_ROOT/%{_initrddir}/swapmon
63 install -D -m 755 pl_mop.sh $RPM_BUILD_ROOT/usr/bin/pl_mop.sh
65 # Runs pl_mop and bwmon periodically
66 install -D -m 644 pl_mom.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/pl_mom
69 rm -rf $RPM_BUILD_ROOT
72 if [ "$PL_BOOTCD" != "1" ] ; then
79 chkconfig --add swapmon
81 if [ "$PL_BOOTCD" != "1" ] ; then
82 service swapmon restart
85 # Randomize pl_mop run time
86 M=$((60 * $RANDOM / 32768))
87 H=$((24 * $RANDOM / 32768))
88 sed -i -e "s/@M@/$M/" -e "s/@H@/$H/" %{_sysconfdir}/cron.d/pl_mom
93 # 0 = erase, 1 = upgrade
94 if [ "$1" -eq 0 ]; then
95 if [ "$PL_BOOTCD" != "1" ] ; then
99 chkconfig --del swapmon
105 %defattr(-, root, root, -)
106 %{_datadir}/%{name}/pl_mom.py*
107 %{_datadir}/%{name}/swapmon.py*
108 %{_initrddir}/swapmon
110 %{_sysconfdir}/cron.d/pl_mom
113 * Tue May 10 2011 Scott Baker <smbaker@gmail.com> - Mom-2.3-4
114 - Avoid writing error messages to stdout that are due to errors
117 * Wed Apr 20 2011 Scott Baker <smbaker@gmail.com> - Mom-2.3-3
118 - Fix parsing of vps in swapmon, add swapmon error messages when unparseable
119 - lines encountered, add stuck rpm checking to pl_mop
121 * Sun Dec 13 2009 Daniel Hokka Zakrisson <daniel@hozac.com> - Mom-2.3-2
122 - Don't restart disabled services.
124 * Tue Apr 07 2009 Faiyaz Ahmed <faiyaza@cs.princeton.edu> - Mom-2.3-1
127 * Wed Jul 19 2006 Faiyaz Ahmed <faiyaza@cs.princeton.edu> 0.4-7.planetlab
128 - swapmon: Added state info so same reset email does not keep getting
129 sent. If slice is already being killed, will wait for a timeout
130 before trying to kill again.
132 * Mon Jul 17 2006 Faiyaz Ahmed <faiyaza@cs.princeton.edu> 0.4-6.planetlab
133 - swapmon: Added state information per slice. Slices are now killed
134 after consuming more memory than the threshold more than twice.
135 Also fixed the slice restart issue where slices would be restarted
136 and repeated restart emails would be sent.
138 * Mon Jul 10 2006 Faiyaz Ahmed <faiyaza@cs.princeton.edu> 0.4-5.planetlab
139 - bwmon: Initialize default limits
141 * Mon Jul 10 2006 Faiyaz Ahmed <faiyaza@cs.princeton.edu> 0.4-4.planetlab
142 - bwmon: Use cached values if NM stops responding