[NTLUG:Discuss] More shell scripting madness
Stephen Davidson
gorky at freenet.carleton.ca
Thu Jul 5 11:40:21 CDT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Greetings.
If you are using a GUI desktop, there is an i8k plugin for gkrellm.
Smart enough to detect if you are on battery or AC, and sets the
appropriate temperature ranges. Rechecks every 5 seconds. Only
downside, i8k reports "2 2" even when fans are below max RPMs (fans are
variable speed, with the left fan reporting "2" at anything over about
8500rpm, with a Max of a little over 11600RPM).
Also gives a whole mess of other nice snapshots, including CPU temperature.
Regards,
Steve
. Daniel wrote:
> I know it's hard to see, but I'm actually starting to learn this stuff
> little by little.
>
> Here's the purpose:
>
> I upgraded the processor and video in my laptop. Now it gets warmer than I
> like, especially during game play, which slows down when the processor and
> video heat up. While I intend to improve the actual heatsink materials
> (Copper is surprisingly hard to get in the form I need it... and EXPENSIVE)
> I would like to keep the processor fans running.
>
> As it turns out, the system is controlling the fans by itself based on
> certain criteria. But there is also a handy little utility to simply turn
> on the fan! It's called "i8kfan." Run i8kfan without parameters and it
> will simply return with two numbers indicating the mode of the fans at that
> moment. The values are 0, 1 and 2. So if both fans are off, it will
> return "0 0" and if both are on high speed it will return "2 2".
>
> So I wrote a loop that checks the fan status every two seconds and if it's
> not "2 2" it will set the fans to "2 2" and go back to sleep. I then set
> up an icon on my panel to start the process when I want to play a game so I
> can prolong my "cool time."
>
> Here's the problem though: Gnome shortcuts no longer seem to want to
> launch processes in terminal. In earlier versions, there was a check box
> to select this option. It was a good option to use when you were debugging
> because you could see error messages streaming by or whatever. Now it's
> gone and I can't run the script in a terminal window expect by hand...
> which, of course, I don't wanna do.
>
> So here's the script as simple as it is:
>
> "i8kfanloop.sh"
> -----
> #!/bin/bash
>
> loop=1
>
> while [ loop ]
> do
> status=`i8kfan`
> if [ "$status" != "2 2" ]
> then
> i8kfan 2 2
> fi
> sleep 2
> done
> -----
>
> That's some pretty simple bash code right?
>
> Here's what I'd like to add to it. I'd like to add some code that will
> detect if a previous instance of this script is currently running and if it
> is, kill it and exit. If it's not running, just go into the loop. So the
> result would be, if I click the icon once, it runs the loop. If I click
> the icon again, it will stop the loop.
>
> I imagine some code that will get the shell script's process ID number and
> stores it somewhere, say "/tmp/$username_i8kfanloop.pid" or something like
> that. Then at the beginning of the script, it will look for said file and
> compare the process ID recorded in the file with the process listing to see
> if the process ID is there and actually the same script.
>
> If the filename doesn't exist, create the PID file and enter the loop.
> If the filename exists but the process doesn't, it should erase the file,
> create a new PID file and enter the loop.
> If the filename exists and the process exists but the PID doesn't match up
> with the script name, then erase the file, create a new PID file and enter
> the loop.
>
> I feel confident that if I messed with this for a few hours, I'd be able to
> cobble up something that works. But before I spend my work day on my
> personal stuff, I'm willing to bet someone already has or knows about some
> shell code out there that does this already. And I'm hoping that someone
> will be kind and generous enough to paste their code into a reply so that I
> could learn and adapt my skills further. :)
>
> _________________________________________________________________
> IE6の機能を強化した最新版ブラウザがMSNユーザー向けになって登場!
> http://promotion.msn.co.jp/ie7/
>
>
> _______________________________________________
> http://www.ntlug.org/mailman/listinfo/discuss
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
iD8DBQFGjR71PtiPEDq7o8YRAm9TAJ4jsqWjNZZCQ/5RY2uz8CkjFBaRMgCeIRL3
TCqHYDw8vkXjgVHNQLzlTro=
=pWfx
-----END PGP SIGNATURE-----
More information about the Discuss
mailing list