Windowsのサービスを定期的に自動再起動する方法【batファイル・タスクスケジューラ】

7月 20, 2024

※当ブログではリンク先にプロモーションを含みます。

サービスを定期的に自動再起動する方法【batファイル・タスクスケジューラ】
サービスの自動再起動を設定したい人
サービスでTomcatがメモリを圧迫して処理が低速化して困っている人向けに書いていまいす。

本記事の内容

batファイルとタスクスケジューラでサービスを自動再起動する方法を紹介します。

・batファイルでサービスを自動再起動するプログラム

サービスがメモリを圧迫して処理が低速化していることはありませんか?
最近Webアプリの管理でTomcatを使用していたのですが、メモリを圧迫することがあって定期的に再起動を手動で行っていました。
この作業が手間だと思い自動化しました。
もしTomcat等のサービスを定期的に自動で再起動させたい場合、参考にしてみてください。

自動化したbatファイルのプログラムを紹介します。

 
 

サービス再起動のbatプログラム

  1. @echo off
  2. rem —————————————————-
  3. rem サービスの再起動
  4. rem —————————————————-
  5. rem -再起動サービス名
  6. set SERVICE="Tomcat8″
  7. rem – ログ出力パス
  8. set LOG=C:\Users\Public\restart_service.log
  9. rem – 実行日時出力
  10. echo —————————————————- >> %LOG%
  11. date /t >> %LOG%
  12. time /t >> %LOG%
  13. rem – 対象サービス停止コマンド実施
  14. net stop %SERVICE% >> %LOG%
  15. rem – 対象サービス停止エラー判定
  16. if %errorlevel%==0 goto STOP_OK
  17. rem -エラー時
  18.   echo サービス終了時にエラーが発生しました。 >> %LOG%
  19.   echo エラー番号:%errorlevel% >> %LOG%
  20.   net helpmsg %errorlevel% >> %LOG%
  21. rem – 正常時
  22. :STOP_OK
  23. echo 処理終了時刻 >> %LOG%
  24. time /t >> %LOG%
  25. echo. >> %LOG%
  26. rem – 対象サービス開始コマンド実施
  27. net start %SERVICE% >> %LOG%
  28. if %errorlevel%==0 goto START_OK
  29. rem – エラー時
  30.   echo サービス開始時にエラーが発生しました。 >> %LOG%
  31.   echo エラー番号:%errorlevel% >> %LOG%
  32.   net helpmsg %errorlevel% >> %LOG%
  33. rem – 正常時
  34. :START_OK
  35. echo 処理終了時刻 >> %LOG%
  36. time /t >> %LOG%
  37. echo. >> %LOG%

 

こちらのプログラムのbatファイルをタスクスケジューラに設定することで定期的に自動実行できます。
コマンドプロンプト(cmd)に直接入力実行することもできます。
コマンドプロンプトに毎回入力して実行するのは手間になると思いますのでタスクスケジューラに設定することをおすすめします。

スポンサーリンク

 

まとめ

batファイルとタスクスケジューラでサービスを自動再起動する方法を紹介しました。
管理上、定期的に自動実行するようにしておけば手間がかからなくなります。
もし、サービスの再起動を定期的に手作業でされていましたら、試してみてください。
最後までご覧いただき、ありがとうございました。

ファイルを自動的にコピー&ペーストして保存する方法」も紹介していますので、もしよければこちらも御覧ください。