Update of /cvsroot/bobs/bobs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25059/bobs Modified Files: FILES INSTALL Makefile.am Makefile.in bobs.spec configure configure.in systemcheck.php Added Files: RELEASE-NOTES Log Message: Start cmdloop from /etc/init.d/cmdloopd instead of using check_loop in /etc/crontab. --- NEW FILE: RELEASE-NOTES --- RELEASE NOTES IMPORTANT! If you are upgrading from release 0.6.1 or earlier, or from a cvs version prior to 03-27-2004, you must uninstall bobs before configuring or installing a newer release. Uninstalling bobs following one of the methods below will not erase your configuration data or backups. To uninstall a bobs rpm: su rpm -e bobs To uninstall a bobs tgz distribution: Change to the directory where you untarred bobs. su make uninstall This is necessary because of the way cmdloop gets started. cmdloop is now started from /etc/init.d/cmdloopd instead /etc/crontab. If you fail to uninstall bobs before installing a new version, then do the following steps: o su - o Edit /etc/crontab and remove the check_loop entry. o killall cmdloop o Start the new cmdloop by typing: /etc/init.d/cmdloopd start ---------- bobs release 0.6.2 cmdloop is now started from /etc/init.d/cmdloopd. It should start automatically. To start it manually, become root and type '/etc/init.d/cmdloopd start'. To stop it manually, become root and type '/etc/init.d/cmdloopd stop'. Output from cmdloop is now written to a log, usually /var/log/bobs.log. This log is not rotated automatically so you may want to delete it, rotate it manually, or setup automatic log rotation. To setup log rotation see 'man logrotate'. Index: FILES =================================================================== RCS file: /cvsroot/bobs/bobs/FILES,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- FILES 1 Sep 2002 02:22:07 -0000 1.2 +++ FILES 28 Mar 2004 22:33:21 -0000 1.3 @@ -8,6 +8,6 @@ directory. -cron/check_loop Cron script that starts the cmdloop script. +bash/init.d/cmdloopd Script that starts the cmdloop script. inc/list.php Class documentation and examples for selectlist class. Index: INSTALL =================================================================== RCS file: /cvsroot/bobs/bobs/INSTALL,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- INSTALL 9 May 2003 05:39:53 -0000 1.23 +++ INSTALL 28 Mar 2004 22:33:21 -0000 1.24 @@ -356,10 +356,8 @@ /var/www/html/bobs Bobs web pages -/etc/crontab A line is added to /etc/crontab that - starts the backup command loop script if it's - not already running. - 0-59/5 * * * * root /var/bobsdata/current/process/check_loop +/etc/init.d/cmdloopd + Starts the cmdloop script. /etc/cron.daily/backup.php This is the script that runs the backups once Index: Makefile.am =================================================================== RCS file: /cvsroot/bobs/bobs/Makefile.am,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile.am 9 May 2003 05:39:53 -0000 1.15 +++ Makefile.am 28 Mar 2004 22:33:21 -0000 1.16 @@ -32,7 +32,7 @@ dist_html_DATA = $(wildcard *.php *.css) -EXTRA_DIST = bobs.spec config.patch backup.patch check_loop.patch \ +EXTRA_DIST = bobs.spec config.patch backup.patch cmdloopd.patch \ FILES LICENSE VERSION # @@ -68,8 +68,8 @@ backup.patch: -diff -uN cron/backup.php.in cron/backup.php > backup.patch -check_loop.patch: - -diff -uN cron/check_loop.in cron/check_loop > check_loop.patch +cmdloopd.patch: + -diff -uN bash/init.d/cmdloopd.in bash/init.d/cmdloopd > cmdloopd.patch install-data-local: @@ -88,10 +88,20 @@ # so make the httpd process own the directory if test -n "$(myHTTPDUSER)"; then \ - chown -R $(myHTTPDUSER) $(myBOBSDATA) \ + chown $(myHTTPDUSER) $(myBOBSDATA)/current; \ + chown $(myHTTPDUSER) $(myBOBSDATA)/incoming; \ + chown $(myHTTPDUSER) $(myBOBSDATA)/incremental; \ + chown $(myHTTPDUSER) $(myBOBSDATA)/admin.pwd; \ + chown -R $(myHTTPDUSER) $(myBOBSDATA)/current/process \ || echo "** Please run 'chown -R $(myHTTPDUSER) $(myBOBSDATA)'"; \ fi +# Start cmdloopd + +install-data-hook: + + -$(myrealSYSCONFDIR)/init.d/cmdloopd start + # Remove some other crap for 'make distclean' distclean-local: Index: Makefile.in =================================================================== RCS file: /cvsroot/bobs/bobs/Makefile.in,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Makefile.in 9 May 2003 05:39:53 -0000 1.13 +++ Makefile.in 28 Mar 2004 22:33:21 -0000 1.14 @@ -82,14 +82,16 @@ install_sh = @install_sh@ myBOBSDATA = @myBOBSDATA@ myCRONDIR = @myCRONDIR@ -myCRONTABDIR = @myCRONTABDIR@ myHTTPDUSER = @myHTTPDUSER@ +myLOGDIR = @myLOGDIR@ myMANDIR = @myMANDIR@ myPASS = @myPASS@ +mySYSCONFDIR = @mySYSCONFDIR@ myWEBDIR = @myWEBDIR@ myrealBOBSDATA = @myrealBOBSDATA@ myrealCRONDIR = @myrealCRONDIR@ -myrealCRONTABDIR = @myrealCRONTABDIR@ +myrealLOGDIR = @myrealLOGDIR@ +myrealSYSCONFDIR = @myrealSYSCONFDIR@ myrealWEBDIR = @myrealWEBDIR@ SUBDIRS = bash data doc cron images inc js man winc @@ -104,7 +106,7 @@ # The 'dist_' prefix tells 'make dist' to distribute these files. dist_html_DATA = $(wildcard *.php *.css) -EXTRA_DIST = bobs.spec config.patch backup.patch check_loop.patch \ +EXTRA_DIST = bobs.spec config.patch backup.patch cmdloopd.patch \ FILES LICENSE VERSION @@ -299,7 +301,7 @@ distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) - $(mkinstalldirs) $(distdir)/cron $(distdir)/data $(distdir)/inc + $(mkinstalldirs) $(distdir)/bash/init.d $(distdir)/cron $(distdir)/data $(distdir)/inc @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ @@ -435,6 +437,8 @@ info-am: install-data-am: install-data-local install-dist_htmlDATA + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-exec-am: @@ -489,8 +493,8 @@ backup.patch: -diff -uN cron/backup.php.in cron/backup.php > backup.patch -check_loop.patch: - -diff -uN cron/check_loop.in cron/check_loop > check_loop.patch +cmdloopd.patch: + -diff -uN bash/init.d/cmdloopd.in bash/init.d/cmdloopd > cmdloopd.patch install-data-local: @@ -509,10 +513,20 @@ # so make the httpd process own the directory if test -n "$(myHTTPDUSER)"; then \ - chown -R $(myHTTPDUSER) $(myBOBSDATA) \ + chown $(myHTTPDUSER) $(myBOBSDATA)/current; \ + chown $(myHTTPDUSER) $(myBOBSDATA)/incoming; \ + chown $(myHTTPDUSER) $(myBOBSDATA)/incremental; \ + chown $(myHTTPDUSER) $(myBOBSDATA)/admin.pwd; \ + chown -R $(myHTTPDUSER) $(myBOBSDATA)/current/process \ || echo "** Please run 'chown -R $(myHTTPDUSER) $(myBOBSDATA)'"; \ fi +# Start cmdloopd + +install-data-hook: + + -$(myrealSYSCONFDIR)/init.d/cmdloopd start + # Remove some other crap for 'make distclean' distclean-local: Index: bobs.spec =================================================================== RCS file: /cvsroot/bobs/bobs/bobs.spec,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- bobs.spec 7 Feb 2004 23:22:30 -0000 1.6 +++ bobs.spec 28 Mar 2004 22:33:21 -0000 1.7 @@ -10,7 +10,7 @@ Requires: sed, php, bash, rsync, portmap Patch0: config.patch Patch1: backup.patch -Patch2: check_loop.patch +Patch2: cmdloopd.patch %description Browseable Online Backup System (BOBS) is a complete online backup system. @@ -24,7 +24,7 @@ patch inc/config.php.in config.patch patch cron/backup.php.in backup.patch -patch cron/check_loop.in check_loop.patch +patch bash/init.d/cmdloopd.in cmdloopd.patch %build ./configure --prefix=$RPM_BUILD_ROOT @@ -36,28 +36,12 @@ rm -rf $RPM_BUILD_ROOT %post -# Install the cron job -# Backup crontab, copy back all but check_loop, -# then Add check_loop - if test -f %{_sysconfdir}/crontab; then \ - cp -vp %{_sysconfdir}/crontab %{_sysconfdir}/crontab.bak; \ - grep -v current/process/check_loop \ - %{_sysconfdir}/crontab.bak > %{_sysconfdir}/crontab; \ - echo '0-59/5 * * * * root /var/bobsdata/current/process/check_loop' \ - >> %{_sysconfdir}/crontab; \ - fi +/etc/init.d/cmdloopd start %postun -# Uninstall the cron job -# Backup crontab and copy back all but check_loop - if test -f %{_sysconfdir}/crontab; then \ - cp -vp %{_sysconfdir}/crontab %{_sysconfdir}/crontab.bak; \ - grep -v current/process/check_loop \ - %{_sysconfdir}/crontab.bak > %{_sysconfdir}/crontab; \ - fi - %preun +/etc/init.d/cmdloopd stop || echo "cmdloop not stopped." %files @@ -66,6 +50,7 @@ /var/www/html/bobs/ /etc/cron.daily/backup.php +/etc/init.d/cmdloopd /usr/man/man1/bobs.1.gz %defattr(-, %{HTTPDUSER}, root) @@ -73,10 +58,12 @@ /var/bobsdata %changelog +* Sun Mar 28 2004 Joe Zacky <jz...@us...> +- Remove check_loop from crontab and use /etc/init.d/cmdloopd. * Sat Feb 7 2004 Jochen Metzger <jme...@us...> - Added backup method rsync over secure shell. * Sun Jun 22 2003 Joe Zacky <jz...@at...> - Release 0.6.0 * Tue Oct 15 2002 Rene Rask <re...@gr...> - Initial RPM release. - + Index: configure =================================================================== RCS file: /cvsroot/bobs/bobs/configure,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- configure 7 Feb 2004 23:22:30 -0000 1.13 +++ configure 28 Mar 2004 22:33:21 -0000 1.14 @@ -272,7 +272,7 @@ ac_unique_file="admin.php" ac_default_prefix='' -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE myWEBDIR myBOBSDATA myCRONDIR myCRONTABDIR myMANDIR myPASS myHTTPDUSER myrealBOBSDATA myrealWEBDIR myrealCRONDIR myrealCRONTABDIR LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE myWEBDIR myBOBSDATA myCRONDIR myMANDIR myLOGDIR mySYSCONFDIR myPASS myHTTPDUSER myrealBOBSDATA myrealWEBDIR myrealCRONDIR myrealLOGDIR myrealSYSCONFDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1728,11 +1728,13 @@ myPASS=$(echo '<?php echo crypt("admin"); ?>' | php | tail -n 1) -myCRONTABDIR=${sysconfdir} +myMANDIR='${prefix}'/usr/man -myMANDIR='${prefix}'/usr/man +myLOGDIR='${localstatedir}'/log + +mySYSCONFDIR='${sysconfdir}' @@ -1745,7 +1747,9 @@ - ac_config_files="$ac_config_files Makefile bash/Makefile cron/Makefile data/Makefile doc/Makefile images/Makefile images/bar/Makefile images/menu/Makefile inc/Makefile inc/excludes/Makefile inc/servers/Makefile inc/templates/Makefile js/Makefile man/Makefile winc/Makefile" + + + ac_config_files="$ac_config_files Makefile bash/Makefile bash/init.d/Makefile cron/Makefile data/Makefile doc/Makefile images/Makefile images/bar/Makefile images/menu/Makefile inc/Makefile inc/excludes/Makefile inc/servers/Makefile inc/templates/Makefile js/Makefile man/Makefile winc/Makefile" @@ -1767,13 +1771,19 @@ )` -myrealCRONTABDIR=`( +myrealLOGDIR=`( test "x$prefix" = xNONE && prefix=$ac_default_prefix - eval echo "$myCRONTABDIR" + eval echo $(eval echo "$myLOGDIR") )` - ac_config_files="$ac_config_files inc/config.php data/admin.pwd cron/backup.php cron/check_loop" +myrealSYSCONFDIR=`( + test "x$prefix" = xNONE && prefix=$ac_default_prefix + eval echo $(eval echo "$mySYSCONFDIR") +)` + + + ac_config_files="$ac_config_files inc/config.php data/admin.pwd cron/backup.php bash/init.d/cmdloopd" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -2326,6 +2336,7 @@ # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "bash/Makefile" ) CONFIG_FILES="$CONFIG_FILES bash/Makefile" ;; + "bash/init.d/Makefile" ) CONFIG_FILES="$CONFIG_FILES bash/init.d/Makefile" ;; "cron/Makefile" ) CONFIG_FILES="$CONFIG_FILES cron/Makefile" ;; "data/Makefile" ) CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; @@ -2342,7 +2353,7 @@ "inc/config.php" ) CONFIG_FILES="$CONFIG_FILES inc/config.php" ;; "data/admin.pwd" ) CONFIG_FILES="$CONFIG_FILES data/admin.pwd" ;; "cron/backup.php" ) CONFIG_FILES="$CONFIG_FILES cron/backup.php" ;; - "cron/check_loop" ) CONFIG_FILES="$CONFIG_FILES cron/check_loop" ;; + "bash/init.d/cmdloopd" ) CONFIG_FILES="$CONFIG_FILES bash/init.d/cmdloopd" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; @@ -2446,14 +2457,16 @@ s,@myWEBDIR@,$myWEBDIR,;t t s,@myBOBSDATA@,$myBOBSDATA,;t t s,@myCRONDIR@,$myCRONDIR,;t t -s,@myCRONTABDIR@,$myCRONTABDIR,;t t s,@myMANDIR@,$myMANDIR,;t t +s,@myLOGDIR@,$myLOGDIR,;t t +s,@mySYSCONFDIR@,$mySYSCONFDIR,;t t s,@myPASS@,$myPASS,;t t s,@myHTTPDUSER@,$myHTTPDUSER,;t t s,@myrealBOBSDATA@,$myrealBOBSDATA,;t t s,@myrealWEBDIR@,$myrealWEBDIR,;t t s,@myrealCRONDIR@,$myrealCRONDIR,;t t -s,@myrealCRONTABDIR@,$myrealCRONTABDIR,;t t +s,@myrealLOGDIR@,$myrealLOGDIR,;t t +s,@myrealSYSCONFDIR@,$myrealSYSCONFDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF @@ -2699,7 +2712,7 @@ echo -n " web pages directory = "; eval echo $myWEBDIR echo -n " bobs data directory = "; eval echo $myBOBSDATA echo -n " cron directory = "; eval echo $myCRONDIR -echo -n " crontab directory = "; eval echo $myCRONTABDIR +echo " log directory = $myrealLOGDIR"; echo " admin password = admin" echo "" echo "*** $WARNCOUNT warning(s)" Index: configure.in =================================================================== RCS file: /cvsroot/bobs/bobs/configure.in,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- configure.in 7 Feb 2004 23:22:30 -0000 1.15 +++ configure.in 28 Mar 2004 22:33:21 -0000 1.16 @@ -11,6 +11,8 @@ dnl> This is how I am currently building the package: dnl> aclocal;autoconf;automake --add-missing;./configure dnl> 02-03-2003 Provide destination for crontab for 'make rpm'. +dnl> 03-16-2004 Do not modify /etc/crontab, instead start cmdloop as +dnl> a service. PACKAGE=bobs VERSION=0.6.1 @@ -93,16 +95,22 @@ myPASS=$(echo '<?php echo crypt("admin"); ?>' | php | tail -n 1) dnl> -dnl> Location of crontab file +dnl> Location of man pages dnl> -myCRONTABDIR=${sysconfdir} +myMANDIR='${prefix}'/usr/man dnl> -dnl> Location of man pages +dnl> Location of log directory dnl> -myMANDIR='${prefix}'/usr/man +myLOGDIR='${localstatedir}'/log + +dnl> +dnl> Location of configuration files +dnl> + +mySYSCONFDIR='${sysconfdir}' dnl> dnl> The following variables will will be substituted with their @@ -112,8 +120,9 @@ AC_SUBST(myWEBDIR) AC_SUBST(myBOBSDATA) AC_SUBST(myCRONDIR) -AC_SUBST(myCRONTABDIR) AC_SUBST(myMANDIR) +AC_SUBST(myLOGDIR) +AC_SUBST(mySYSCONFDIR) AC_SUBST(myPASS) AC_SUBST(myHTTPDUSER) AC_SUBST(PACKAGE) @@ -126,6 +135,7 @@ AC_CONFIG_FILES([ Makefile bash/Makefile +bash/init.d/Makefile cron/Makefile data/Makefile doc/Makefile @@ -163,17 +173,23 @@ )` AC_SUBST(myrealCRONDIR) -myrealCRONTABDIR=`( +myrealLOGDIR=`( test "x$prefix" = xNONE && prefix=$ac_default_prefix - eval echo "$myCRONTABDIR" + eval echo $(eval echo "$myLOGDIR") )` -AC_SUBST(myrealCRONTABDIR) +AC_SUBST(myrealLOGDIR) + +myrealSYSCONFDIR=`( + test "x$prefix" = xNONE && prefix=$ac_default_prefix + eval echo $(eval echo "$mySYSCONFDIR") +)` +AC_SUBST(myrealSYSCONFDIR) AC_OUTPUT([ inc/config.php data/admin.pwd cron/backup.php -cron/check_loop +bash/init.d/cmdloopd ]) dnl> @@ -186,7 +202,7 @@ echo -n " web pages directory = "; eval echo $myWEBDIR echo -n " bobs data directory = "; eval echo $myBOBSDATA echo -n " cron directory = "; eval echo $myCRONDIR -echo -n " crontab directory = "; eval echo $myCRONTABDIR +echo " log directory = $myrealLOGDIR"; echo " admin password = admin" echo "" echo "*** $WARNCOUNT warning(s)" @@ -201,6 +217,5 @@ dnl> echo "myBOBSDATA: ${myBOBSDATA}" dnl> echo "myrealBOBSDATA: ${myrealBOBSDATA}" dnl> echo "myCRONDIR: ${myCRONDIR}" -dnl> echo "myCRONTABDIR: ${myCRONTABDIR}" dnl> THE END Index: systemcheck.php =================================================================== RCS file: /cvsroot/bobs/bobs/systemcheck.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- systemcheck.php 26 Mar 2004 21:33:51 -0000 1.7 +++ systemcheck.php 28 Mar 2004 22:33:21 -0000 1.8 @@ -206,62 +206,9 @@ } // -------------------------------- -// Check crontab +// Check cmdloop // -------------------------------- -$crontabdir = $config->get_crontabdir(); -$t->assign ('ITEM', "The crontab directory is $crontabdir"); -if (strlen($crontabdir) <= 0){ - $t->assign ('STATUS', 'FAIL'); - $t->assign ('HELP', "The location of the crontab file has not been set.<br> - This is usually /etc.<br> - Reinstall bobs and manually specify --with-crontabdir=DIR<br> - if it is not set automatically."); - putfail(); -} else { - $t->assign ('STATUS', 'PASS'); - putpass(); -} - -$crontab = $crontabdir . '/crontab'; -$t->assign ('ITEM', "Checking for $crontab"); -if (is_file($crontab)) { - $t->assign ('STATUS', 'PASS'); - putpass(); -} else { - $t->assign ('STATUS', 'FAIL'); - $t->assign ('HELP', "I can't find $crontab. What the heck?!"); - putfail(); -} - -$cronline = `grep 'current/process/check_loop' $crontab`; -if (strlen($cronline) > 0) { - $t->assign ('ITEM', "Checking for check_loop in $crontab<br> - $cronline"); - $t->assign ('STATUS', 'PASS'); - putpass(); -} else { - $t->assign ('ITEM', "Checking for check_loop in $crontab"); - $t->assign ('STATUS', 'FAIL'); - $t->assign ('HELP', "check_loop doesn't seem to be in $crontab.<br> - Reinstall bobs."); - putfail(); -} - -$pid = `/sbin/pidof -x check_loop`; -if (strlen($pid) > 0) { - $t->assign ('ITEM', "Checking for running check_loop process<br> - check_loop process id is $pid"); - $t->assign ('STATUS', 'PASS'); - putpass(); -} else { - $t->assign ('ITEM', "Checking for running check_loop process"); - $t->assign ('STATUS', 'FAIL'); - $t->assign ('HELP', "check_loop doesn't seem to be running.<br> - See $crontab and/or reinstall bobs."); - putfail(); -} - $pid = rtrim(`/sbin/pidof -x cmdloop`); if (strlen($pid) > 0) { $t->assign ('ITEM', "Checking for running cmdloop process<br> @@ -272,8 +219,8 @@ $t->assign ('ITEM', "Checking for running cmdloop process"); $t->assign ('STATUS', 'FAIL'); $t->assign ('HELP', "cmdloop doesn't seem to be running.<br> - If you just installed bobs, wait 5 minutes and check again,<br> - otherwise see $crontab and/or reinstall bobs."); + Try running this command as root:<br> + /etc/init.d/cmdloopd start"); putfail(); } |