From owner-freebsd-questions@FreeBSD.ORG Sat Jan 7 13:05:14 2012 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55F9C106564A for ; Sat, 7 Jan 2012 13:05:14 +0000 (UTC) (envelope-from yuri.pankov@gmail.com) Received: from procyon.xvoid.org (procyon.xvoid.org [IPv6:2001:470:28:4ba:20c:29ff:feb6:11bc]) by mx1.freebsd.org (Postfix) with ESMTP id 93CBB8FC14 for ; Sat, 7 Jan 2012 13:05:13 +0000 (UTC) Received: from procyon.xvoid.org (yuri@procyon.xvoid.org [IPv6:::1]) by procyon.xvoid.org (8.14.5/8.14.5) with ESMTP id q07D5BAo009913; Sat, 7 Jan 2012 17:05:11 +0400 (MSK) (envelope-from yuri.pankov@gmail.com) Received: (from yuri@localhost) by procyon.xvoid.org (8.14.5/8.14.5/Submit) id q07D5B7P009912; Sat, 7 Jan 2012 17:05:11 +0400 (MSK) (envelope-from yuri.pankov@gmail.com) X-Authentication-Warning: procyon.xvoid.org: yuri set sender to yuri.pankov@gmail.com using -f Date: Sat, 7 Jan 2012 17:05:11 +0400 From: Yuri Pankov To: Kaya Saman Message-ID: <20120107130511.GE1237@procyon.xvoid.org> References: <4F0838DF.40006@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4F0838DF.40006@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-questions@freebsd.org Subject: Re: Having problems running shell script from crontab X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jan 2012 13:05:14 -0000 On Sat, Jan 07, 2012 at 02:21:51PM +0200, Kaya Saman wrote: > Hi, > > I wrote a shell script to detect if the port of tomcat was in use or not > then restart if the port wasn't online; due to tomcat segfaulting as my > system hasn't got enough memory for it. > > > This is the shell script: > > > #!/usr/local/bin/bash > ntstat=`netstat -ap tcp | grep 8180 | sed -n '1p'` sockstat would be more useful here. > port="8180" > > #echo $ntstat > #echo $port > > if [[ $ntstat =~ $port ]]; then > echo "Output of Netstat command $ntstat port number $port" > > /root/java_restart/java_restart.log; > else > wait 60; /usr/local/etc/rc.d/tomcat6 restart; Are you sure you want 'wait' here (or should it be 'sleep')? > fi > > > > Here in /var/log/cron - it can be seen that the script has been executed: > > Jan 7 10:30:00 wiki /usr/sbin/cron[19509]: (root) CMD > (/root/java_restart/java_restart.sh) > Jan 7 11:00:00 wiki /usr/sbin/cron[20418]: (root) CMD > (/root/java_restart/java_restart.sh) > Jan 7 11:30:00 wiki /usr/sbin/cron[21356]: (root) CMD > (/root/java_restart/java_restart.sh) > Jan 7 12:00:00 wiki /usr/sbin/cron[22455]: (root) CMD > (/root/java_restart/java_restart.sh) > > > > > The strange thing is that if I run this script manually > /root/java_restart/java_restart.sh it works fine and does what it's > supposed to do. Cron however seems to execute the IF statement but not > get as far as else??? - it seems as tomcat doesn't restart. > > Here is my little log file that tells the port is active: > > -rw-r--r-- 1 root wheel 116 Jan 7 11:30 java_restart.log > > > If I stop tomcat just before the xx:00 or xx:30 time designations tomcat > will not be restarted by the script and I don't understand why? > > > This is the crontab: 0,30 * * * * /root/java_restart/java_restart.sh Try changing it to /usr/local/bin/bash /root/java_restart/java_restart.sh. > which is being run as root user. > > > Can anyone suggest anything that might be a possible cause for tomcat > not getting restarted automatically when the proper conditions are met? Yuri