次の PowerShell 5 プログラムがあります。
$job = Start-Job -ScriptBlock {timeout.exe 10 /NOBREAK}
Wait-Job $job
実行すると、次の出力ですぐに終了します。
ID 名 PSJobTypeName 状態 HasMoreData 場所 コマンド -- ---- ------------- ----- ----------- -------- ------- 1 Job1 BackgroundJob Completed True localhost timeout.exe 10 /NOBREAK
タスクマネージャーには表示されtimeout.exe
ません。
終了する前に 10 秒待たないのはなぜですか? ジョブの外部で呼び出すと、ジョブでのtimeout.exe 10 /NOBREAK
呼び出しと同様に、10 秒間待機しStart-Sleep 10
ます。
同じ問題 (睡眠) を解決する別の方法を探しているわけではありませんが、具体的には、このプログラムがそのように動作する理由に対する答えを探しています。