時々ハングするスケジュールされたタスクがあります。応答が停止するだけです。 Windows 2003では、3時間後にタスクを強制終了するようにタスクスケジューラを構成しました。これは32ビットプロセスです。
Windows 2008 R2では、「実行時間が長くなった場合はタスクを停止する」と「要求されたときに実行中のタスクが終了しない場合は、強制的に停止する」を設定しました。
ただし、タスクがハングした場合、タスクは停止せず、何日もプロセスエクスプローラーに留まります。
Windowsスケジューラがプロセスを強制終了しない理由は何ですか?
( この投稿 には、この問題の再現可能な設定があります。)
その答えは、64ビットタスクスケジューラは実際には32ビットタスクを強制終了しないということです。
これを解決するには、スケジュールされたタスクのアクション1として pskill
を実行します。 pskill
は、32ビットプロセスのディスパッチに問題はありません。
「実行時間が長くなった場合はタスクを停止する」のすぐ下に、「要求されたときに実行中のタスクが終了しない場合は、強制的に停止する」というオプションがあります。その2番目のオプションはチェックされていますか?