お品書き
書き直し中…
とりあえず、中へどうぞ
↓↓↓
スポンサーリンク

Windowsで定期的にアプリケーションを再起動させる方法

PC/ネット
プロキシサーバーソフトが時々応答しなくなってしまうんですよね。。。

(ソフトは何を使っても同じような症状は出る印象・・・誰か、何かいけない通信でもバックグラウンドでしてるのだろうか・・・?)

応答がなくなるたびに、手動でプロキシサーバーを終了→起動させる必要がある。

面倒だし、自分が居ない時にこれが発生すると、他の人間には直せない。

頻繁に「インターネットにつながらな~い」という苦情が発生するのもウザイので、定期的にプロキシサーバーソフトを再起動させちゃうことに。。。

◆Windowsで定期的にソフトを再起動させる方法

(1)batファイルで終了・起動を行う

テキストファイルを作って名前を「○○○リスタート.BAT」など適当な名前にして保存。(拡張子をBATに)

BATファイルは右クリックすると「編集」というメニューがあるのでそこから編集できる。

先にテキストファイルのまま(拡張子TXT)内容を編集して最後に拡張子を変更しても可。

内容は…

アプリケーションを終了させるコマンド ⇒ taskkill

アプリケーションを起動させるコマンド ⇒ start
taskkill /IM ○○○.exe /F
start "C:¥Program Files (x86)¥○○○.exe" %*
/IM をつけるとPID(プロセスID)ではなく名前で指定できるようになる。
/F は強制終了(強制終了すると問題が起きるソフトの場合はつけない)

※startをつけなくても実行ファイルを指定すると起動できるが、コマンドプロンプトが出たままになってしまって、起動したアプリケーションが終了するまで次のコマンドが実行されなくなる。startをつけると起動して次の処理に進める。

終了処理に時間がかかるとその後の起動が失敗するようだったので、遅延を入れた。
taskkill /IM ○○○.exe
timeout /T 60
start "C:¥Program Files (x86)¥○○○.exe" %*
これで終了後60秒経ってから起動する。

■このバッチファイルをタスクスケジューラで定期的に実行させればOK
「コントロールパネル」
↓
「すべてのコントロールパネル項目」
↓
「管理ツール」
↓
「タスクスケジューラ」
タスクスケジューラが起動したら、「操作」→「タスクの作成」で先程作成したバッチファイルを指定してやる。

(※セキュリティソフトに実行を妨害されないように除外設定が必要になる場合が多いと思うので、一度実行確認をしてみる。)

☆「トリガー」タブで繰り返し設定ができるけれど、1時間おきまでしか選べないじゃん、4時間おきとか指定したい場合はどうすれば?と思ったら、ドロップダウンで選択後、直接数値を書き換えられるんですね(^^;)

●サービスの再起動

サービスの場合(プロキシサーバーはサービス登録ができるものが多い)は、サービスの設定
(「コントロールパネル」→「すべてのコントロールパネル項目」→「管理ツール」→「サービス」)
で該当するサービスをダブルクリック、「回復」タブでエラーの際の処理を指定できる。

「サービスを再起動する」にしておけばサービスがエラーで停止しても自動的に再起動してくれる。

ただ、サービスが落ちてしまった時は再起動してくれるけれど、起動したまま異常が起きている場合は再起動してくれないので、定期的に強制再起動させたい場合は、上記と同じようにバッチファイルを作ってタスクスケジューラで実行させる。

※サービス化されたプロクシサーバーは以下のようなバッチファイルでも可
net stop "○○○"
net start "○○○"
※netはネットワーク関連の設定に使われるコマンド
"○○○"はサービス名称 → サービスの設定を見ると書いてある。

例えば、ファイアーウォールは「Windows Firewall」と言うサービス名で表示されているが、プロパティを開いてみると「MpsSvc」という名称になっているので

net stop MpsSvc net start MpsSvc
で再起動させることができる。


関連記事

管理者権限が必要なアプリケーションを起動時に自動実行させる方法

コメント