サーバーを手軽に決まった時間に強制再起動するには

どうしても再起動したい。でも今はサーバーを止められない。

夜間であればだれもアクセスしてこないので再起動をしても問題ない。

といったときに夜中に自動的に再起動を実行するにはどうするか。

 

 

念のため注意点

管理者の権限が必要になります。

再起動時に動いているアプリケーションがあった場合は強制的に途中で止まってしまうためデータがロストする可能性があります。

 

操作方法は簡単

Windowsタスクスケジューラでshutdown.exeを仕掛けます。

 

まずタスクスケジューラを開きます。

f:id:tetsunari_jp:20150330125548p:plain

 

タスクの作成を選択します。

f:id:tetsunari_jp:20150330130545p:plain

 

まずは識別できる名前を付けます。ここでは「強制再起動」とします。

続いて、セキュリティオプションを「ユーザーがログオンしているかどうかにかかわらず実行する」にチェックします。夜間でユーザーが利用していない時間帯なのでこのオプションを選択しています。

また、タスクの実行時に使うユーザーアカウントが管理者になっていることを確認します。これでOKします。

f:id:tetsunari_jp:20150330130505p:plain

 

次にトリガタブにてスケジュールの設定をします。下の画像では今晩1回限り、1:00に設定してみました。デフォルト有効にチェックが入っていますのでスケジュールがセットされます。ちなみにこのチェックをはずすと動きません。

f:id:tetsunari_jp:20150330125711p:plain

 

最後に、操作タブ。

  操作はデフォルトで「プログラムの開始」になっていますので

  設定のプログラム/スクリプト

  c:\windows\system32\shutdown.exe  (参照で探しても可)

  引数の追加に 「-r -f」

※再起動実施時にバックグラウンドで何かアプリが動いていても強制再起動してしまうオプションが「-f」になります。

f:id:tetsunari_jp:20150330125719p:plain 

操作をOKして

タスクの作成画面でOKすると管理者のパスワードを求められるので管理者のユーザーとパスワードを入力して正しければ準備完了。

 f:id:tetsunari_jp:20150330125734p:plain

 

準備完了になっていることが確認できました。あとは実行されるのを待つだけです。

夜間を迎えて次の日に再起動されているか確認すればいいですね。

実際は10分後とかで仕掛けて動くのを確認してから実際の時間に設定したほうが確実です。

f:id:tetsunari_jp:20150330130736p:plain

 

ちなみに上では細かい設定は入れていませんが他のタブでサーバーの状況を見ての条件をつけたり、shutdown.exeのオプションで、例えば「まもなくシャットダウンします」というメッセージを表示させることができますがここでは書きません。

 

shutdown.exeのオプション等、詳しい情報はリンクで

Shutdown

 

タスク スケジューラの操作方法

 

実施した環境はWindows Server 2008ですがWindows Server2012 R2でも同じことができます。

 

計画的に設定すればサーバーの運用も楽になりますが、今回の設定はあくまで緊急措置なので実施する際は自己責任でお願いします;