%define name pl_mom %define version 0.3 %define release 14%{?pldistro:.%{pldistro}}%{?date:.%{date}} Summary: PlanetLab mom -- Cleans up your mess Name: %{name} Version: %{version} Release: %{release} License: dontknow Group: System Environment/Kernel Source: %{name}-%{version}.tgz Vendor: PlanetLab Packager: PlanetLab Central Distribution: PlanetLab 3.0 URL: http://cvs.planet-lab.org/cvs/pl_mom BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: expect %description A small daemon that watches the consumed swap space. At 90% utilization, it resets the slice that is the biggest memory hog. At 95% utilization, it reboots the machine. A cron job which "fixes" various common problems with nodes (dead services, ext3 corruption, zombie SSH sessions) is also installed. %prep %setup %build %install mkdir -p $RPM_BUILD_ROOT/usr/local/planetlab/bin/ mkdir -p $RPM_BUILD_ROOT/etc/init.d/ cp pl_mom $RPM_BUILD_ROOT/etc/init.d/ cp pl_mom.pl $RPM_BUILD_ROOT/usr/local/planetlab/bin/ cp pl_mop.sh $RPM_BUILD_ROOT/usr/local/planetlab/bin/ install -D -m 644 pl_mop.cron $RPM_BUILD_ROOT/etc/cron.d/pl_mop %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %files %defattr(0755, root, root) /etc/init.d/pl_mom /usr/local/planetlab/bin/pl_mom.pl /usr/local/planetlab/bin/pl_mop.sh /etc/cron.d/pl_mop %pre %post if [ "$1" -ge 1 ]; then chkconfig --add pl_mom chkconfig --level 3 pl_mom on if [[ "$PL_BOOTCD" != "1" ]]; then /etc/init.d/pl_mom stop /etc/init.d/pl_mom start fi # Randomize pl_mop run time M=$((60 * $RANDOM / 32768)) H=$((24 * $RANDOM / 32768)) sed -i -e "s/@M@/$M/" -e "s/@H@/$H/" /etc/cron.d/pl_mop fi %preun if [ "$1" -eq 0 ]; then if [[ "$PL_BOOTCD" != "1" ]]; then /etc/init.d/pl_mom stop fi chkconfig --del pl_mom chkconfig pl_mom off fi %postun