From owner-freebsd-questions@FreeBSD.ORG Sat Jan 7 13:17:20 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 83B13106564A for ; Sat, 7 Jan 2012 13:17:20 +0000 (UTC) (envelope-from kayasaman@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 12FC58FC0C for ; Sat, 7 Jan 2012 13:17:19 +0000 (UTC) Received: by wgbdr11 with SMTP id dr11so271309wgb.31 for ; Sat, 07 Jan 2012 05:17:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=uA0Dj4KEM5iyNUFqbNmGg6S05ydqODZ+qo3IU5C+ZJ4=; b=Y18T0alRZZ7cyzwFN9RRY0QxPFP05a6yWRkyvC9HwNSwRsP/AKY2PmIHrdnfxZ5qDw MOrpy3Kker/gikeQEU4/Nh3mLYf9hBrEZTdVaA9wMbXiX8VmJe2QT0np9+L5VKyVdn9I wRD9FB5H6CoznfNnmxPEOI7E7gPGfs7CJlMnI= Received: by 10.181.13.179 with SMTP id ez19mr17311274wid.11.1325942239033; Sat, 07 Jan 2012 05:17:19 -0800 (PST) Received: from Hp2230s.localhost (81-178-2-118.dsl.pipex.com. [81.178.2.118]) by mx.google.com with ESMTPS id f36sm28514872wbo.10.2012.01.07.05.17.16 (version=SSLv3 cipher=OTHER); Sat, 07 Jan 2012 05:17:17 -0800 (PST) Message-ID: <4F0845D1.7030000@gmail.com> Date: Sat, 07 Jan 2012 15:17:05 +0200 From: Kaya Saman User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0 MIME-Version: 1.0 To: Yuri Pankov References: <4F0838DF.40006@gmail.com> <20120107130511.GE1237@procyon.xvoid.org> In-Reply-To: <20120107130511.GE1237@procyon.xvoid.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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:17:20 -0000 On 01/07/2012 03:05 PM, Yuri Pankov wrote: > 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. So if I adapted to: ntstat=`sockstat | grep java` port="java" (keeping the same variables in order to limit change - even though minimal) then compared in my IF statement below that would have the same result? I've never used sockstat although just peeked at the manual quickly now: http://www.freebsd.org/cgi/man.cgi?query=sockstat&sektion=1 > >> 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')? It was sleep that I wanted - thanks! :-) Sorry my shell scripting skills are really iffy at best..... > >> 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. Ok adapted the crontab let's see what happens now. > >> 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 Thanks Yuri :-) Regards, Kaya