タスクスケジューラ、ちょっとしたタスクの起動の自動化に大変便利な存在です。
今日はこの動きについて、昔と異なる動きがあったのでご報告。(といっても初歩の初歩の話ですが)
そのタスクは?
簡単にいうと、OSが起動してからユーザのログオンに関係なくバックグラウンドで動作して欲しいタスクを、タスクスケジューラから「スタートアップ時」と言う指定で.exeなどを起動しているタスクです。(タスクスケジューラ設定画面は後述。)
このタスクは例えば、桜時計のような時刻合わせ用のプロセスやバックアップに関するプロセスなどをバックグラウンドプロセスとして常駐させて、自動実行させているコンピュータがあるとします。
で、そのタスクが、起動後しばらくは動作しているのですが、しばらく(数日くらい?)でフッとプロセスが無くなってしまう、という…。
タスクスケジューラ画面を見ると
まずはタスクスケジューラ画面、対象タスクの「前回の実行結果」欄には(0x103)とだけ表示されており、なんかあったような感じなのか不明。
正常かどうかは、とりあえずこの0x103を手掛かりに調べてみようかと。
ログを確認してみる
対象タスクのログを見ると、実行結果の(0x103)の表記は、特にエラーなどを示していませんでした。
例えばのタスクのログとして、三日前に…
-------------------------------------------------------
※イベントID:200:開始された操作
-------------------------------------------------------
タスク スケジューラは、タスク "\BackupAlert" のインスタンス "{00000000-0000-0000-0000-000000000000}" で操作 "C:\Backup\BackupAlert.exe" を開始しました。
-------------------------------------------------------
とあるタスクが、その三日後には、
-------------------------------------------------------
※イベントID:201:操作が完了しました
-------------------------------------------------------
タスク スケジューラは、タスク "\BackupAlert"、インスタンス "{00000000-0000-0000-0000-000000000000}"、操作 "C:\Backup\BackupAlert.exe" を正常に完了しました。リターン コード: 2147942659
-------------------------------------------------------
で正常に完了、という記録を出して終了しています。そういうつもりのタスクじゃないのですが。
で、
-------------------------------------------------------
※イベントID:102:タスクが完了しました
-------------------------------------------------------
タスク スケジューラは、ユーザー "%USERNAME%" の "\BackupAlert" タスクの "{00000000-0000-0000-0000-000000000000}" インスタンスを正常に完了しました。
-------------------------------------------------------
と続き、
-------------------------------------------------------
※イベントID:329:タイムアウトに達したため、タスクが停止しています
-------------------------------------------------------
タスク スケジューラは、タスク定義で構成された、実行に割り当てられた時間を超えたためにタスク "\BackupAlert" のインスタンス "{00000000-0000-0000-0000-000000000000}" を停止しました。ユーザー操作: 構成されたタスク タイムアウトを増やすか、遅延の外部的な理由を調査します。
-------------------------------------------------------
と記録されています。
フーム、三日で終了ですか。
設定を見直してみる
タスクを見直してみました。
※画面は上述のログのタスクと違うのですが同じタスクスケジューラからの起動で常駐させるという動きをしている桜時計のスタートアップタスク。
こうやって一画面づつ確認していきました。
特に、オカシイところはないのですが…最後の画面で
ん?
タスクを停止するまでの時間…?
よく見ると、見慣れないデフォルト設定が有効化されていました。こんなんあったっけ?
しかも、ちょうど三日じゃないですか。
試しにこれを、オフにしてみましょう。
で、現在様子見をしています。(今は二日経過中)
後日追記:
この設定を実施した後、三日間でタスクが自動的に停止するという事はなくなり、継続して(OSが動作している限りは)タスクが実行されるようになりました。(たまに違う要因でタスクの実行が止まってることはあるけど)起動している限り無限に実行したいタスクは、このデフォルト設定を無効化するという操作が正しい、という結論に達しました。