TwitterクライアントJanetterはメモリ食いでメモリ消費が2GBに上ることがある。このため定期的に再起動する必要があるという。これを自動化する。自動化のためにバッチファイル、VBS、タスクスケジューラを使った。
まず、メモリ使用量に応じて再起動させるバッチファイルを作成する。テキストエディタで次のように記述する。XP Pro、Vista以降で使えるコマンドを使っているのでXP Homeでは動かない。(tasklist,taskkill)
@echo off
rem 終了させるプログラムの名前(拡張子は付けない)
set AppName=Janetter
rem 終了させるプログラムのフォルダ
set AppFolder=C:\Program Files (x86)\Janetter\bin
rem 終了させるメモリ使用量(kB)
set MaxMemUsage=300000
rem プログラムが起動しているかチェック
tasklist /fi "memusage ge %MaxMemUsage%" | find /i "%AppName%"
rem 起動していない場合、処理を終了
if errorlevel 1 goto end
:kill
rem プログラムを終了させる
rem タスクトレイにアイコンが残るので/fオプションは使用しない
taskkill /im %AppName%.exe
rem 終了確認
tasklist | find /i “%AppName%”
rem 終了していない場合、再度実行
if not errorlevel 1 goto kill
rem プログラムを起動する
cd %AppFolder%
start %AppName%.exe
:end
テキストエディタで上のスクリプトを記述し、変数の値を環境に合わせて変更する。
通常、Janetter.exeのあるフォルダは
となる。
拡張子をbatにして保存する。
追記(2011/7/21):挙動が怪しいのでJanetterServ.exeの終了も待つように変更
takaaki 5月 23rd, 2011
Posted In: ソフトウェア