Windowsにおいて,再起動を夜間にスケジュールするときなどに,Shutdownコマンドを用いることがあります。
Shutdownコマンドには,Forceオプションがありますが,これはどのような場合に付けるべきなのでしょうか。
ShutdownとShutdown Forceにはどのような違いがあるのでしょうか。
Shutdownコマンドのオプションの付け方
タスクスケジューラーなどで再起動をスケジュールする際には,以下のようなコマンドを用いることが多いと思います。
shutdown -r -t 60
rオプションは再起動,tオプションは再起動が実行されるまでの待ち時間(秒)です。
ユーザーがログオンしている可能性がある場合などには,tオプションの秒数を伸ばしてあげると,ログオフするための時間が生まれて親切です。
しかし,shutdownコマンドにはfという強制シャットダウンのオプションもあり,以下のように設定するよう勧めている人たちもいます。
shutdown -r -f -t 60
確かに,夜間に再起動を計画していたのに再起動されていなかったら一日無駄になってしまいますので,とにかく強制的に再起動したいと思ってForceオプションを付けるわけです。
では,本当にShutdown Forceのオプションが必要なのかどうか,それぞれのオプションを設定した場合の挙動を検証してみましょう。
自分がログオンしている場合
まず,自分がログオンしている場合に,適当な編集中のファイルを作成します。例えば,メモ帳に文字列を書いて,未保存の状態で画面に残しておきます。
そこでコマンドプロンプトを立ち上げて,shutdown -rを叩きます。
すると,以下のような画面になり,メモ帳が再起動を妨げているという警告がでます。タイムアウトまで放っておけば,再びデスクトップの画面に戻り,再起動はされません。
では,再び,shutdown -rを叩き,今度は強制的に再起動するためのボタンを選択します。
すると,他のユーザーがログオンしていても,強制的に再起動させられました。つまりバックグラウンドでログオンしているユーザーに未保存のファイルがあっても,強制的に再起動させれらてしまいます。
次に,shutdown -r -fとして,Forceオプションを付けてみます。
すると,未保存のファイルがあったとしても,何の確認もなく再起動させられてしまいました。これがForceオプションの効力です。
タスクスケジューラーで設定した場合
では,タスクスケジューラーで再起動を実行した場合にはどうなるのでしょうか。
やはり未保存のメモ帳を立ち上げた状態で,タスクスケジューラーにshutdown -rを設定し,Forceオプションは付けずに実行します。
すると,指定の時間になると強制的に再起動させられてしまいました。これは,Run with the highest privilegesにチェックを付けているかどうかにかかわりなく,強制的に再起動させられます。
まとめ:Shutdown Forceオプションは不要
タスクスケジューラーで再起動を実行する場合には,Forceオプションを付けるか否かに関わらず,再起動されます。
複数のユーザーがログオンしていても関係ありません。
それで,コマンドプロンプトから強制的に再起動したい場合には,Forceオプションを付けると,アプリケーションを閉じるかどうかの確認が不要になりますが,あまりそういう状況は生じないと思いますので,Forceは不要と言えます。
逆を言えば,タスクスケジューラーでshutdown -rを行うとき,Forceを付けていないので安全にシャットダウンしてくれるわけではないことも覚えておきたいと思います。
以上,WindowsにおけるShutdownとShutdown Forceの挙動の違いについてでした。
コメント