From owner-freebsd-questions@FreeBSD.ORG Mon Sep 16 05:05:24 2013 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D0DFD4F0 for ; Mon, 16 Sep 2013 05:05:24 +0000 (UTC) (envelope-from kline@thought.org) Received: from p3plsmtpa09-07.prod.phx3.secureserver.net (p3plsmtpa09-07.prod.phx3.secureserver.net [173.201.193.236]) by mx1.freebsd.org (Postfix) with ESMTP id AFF8D2B61 for ; Mon, 16 Sep 2013 05:05:24 +0000 (UTC) Received: from ethic.thought.org ([209.180.213.209]) by p3plsmtpa09-07.prod.phx3.secureserver.net with id Rh5G1m00M4XeM0101h5GHi; Sun, 15 Sep 2013 22:05:17 -0700 Date: Sun, 15 Sep 2013 22:05:16 -0700 From: Gary Kline To: Matthew Seaman Subject: Re: howto kill x if x is running? Message-ID: <20130916050516.GA21243@ethic.thought.org> References: <20130915062046.GA12535@ethic.thought.org> <52355A11.7040808@infracaninophile.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <52355A11.7040808@infracaninophile.co.uk> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-questions@freebsd.org X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Sep 2013 05:05:24 -0000 Organization: Thought Unlimited. Public service Unix since 1986. Of_Interest: With 27 years of service to the Unix community. On Sun, Sep 15, 2013 at 07:56:17AM +0100, Matthew Seaman wrote: > On 15/09/2013 07:20, Gary Kline wrote: > > > I've evidently had too many pain meds; this shelll script should > > be easy. say that I have a utility xxx running sometimes. xxx is > > soaking up a chunk of my load. I have to use top to find if > > xxx is running, then kill -9 to kill xxx and have a steady load of, > > say, between 0.10 and 0.15. what's the script that can do this? > > The classic answer to this is that you need to find the pid of your > 'xxx' process, and then kill it using that. Some combination of ps(1) > and grep(1) usually sufficed. > > However nowadays there's the very handy pkill(1): > > pkill -9 xxx > > Tying that in with the trigger based on system load: > > #!/bin/sh > > load=$(sysctl vm.loadavg | cut -d ' ' -f 3) > too_high=$(bc -e "$load > 0.15" < /dev/null) > > if [ $too_high = '1' ]; then > pkill -9 xxx > fi > > Note the use of bc(1) to compare floating point values -- the built-in > $((shell arithmetic)) or expr(1) only do integer arithmetic. > > One final point -- instead of killing the xxx process when the load gets > too high, you could simply renice(1) it to very low priority. Or even > better, use idprio(1). > > This won't actually affect the system load values much as 'system load' > is an average of the number of processes requesting a CPU time slice. > What it does do is mean that your 'xxx' process is always pretty much > the last process to get any CPU time -- so everything else should remain > responsive, and your xxx process will only run when the system is > otherwise idle. > > Cheers, > > Matthew thanks very much, gents. no, it wasnt my med; it was that I slept ttoo much:: Old age. "pkill -9 utility" works. the 0.15 or 0.10 were arbitrrary. the default load adverage should be even less since the box is just sitting here! ...well, it's replying to lookup, I suppose. tx again, gary > -- > Dr Matthew J Seaman MA, D.Phil. > > PGP: http://www.infracaninophile.co.uk/pgpkey > JID: matthew@infracaninophile.co.uk > -- Gary Kline kline@thought.org http://www.thought.org Public Service Unix Twenty-seven years of service to the Unix community. http://www.thought.org/HOPE