2011/08/25

【dev】btsk で Windows コマンドをバックグラウンドで実行

 
Windows コマンドをバックグラウンドで実行する btsk コマンドの紹介。
 
このコマンドを使うことで Linux コマンドに & をつけて実行するのと同等の
環境を Windows でも再現可能となります。
 
またプロセスの擬似デーモン化も可能で、付属の管理ツールからデーモンプロセス
を管理する事が可能です。
btsk_manager
 
Windows の正式デーモンは「Windows サービス」として提供されているのですが、
サービスに登録するまでも無い一時的なデーモンプロセスに最適です。
 
擬似デーモン化を行うとウィンドウを所持して無い状態になるので、概念的には
Linux のデーモンと同等です。「ウィンドウが見えない」ではなく "無い" のが
ポイントです。
 
 
さて Poweshell 2.0 ではコマンドレットの start-job を使うと、バックグランド
としてコマンドを実行する事ができます。
 
Start-Job -ScriptBlock {
   Start-Sleep -second 10; Write-Host "10秒経過"
}
 Receive-Job -id 1
 
上記のようにすることで 10秒後に能動的に結果を取得することができます。
btsk コマンドでは 受動的 に受け取る事ができます。
 
btsk --delay 10 --task echo "10秒経過"
 
標準のコマンドプロンプトから確認する事ができます。
 
標準入力、標準出力、標準エラー出力のリダイレクトも可能で、リダイレクトには
 
「親」「新しいコンソール」「NULデバイス」「ファイル」
 
とそれぞれ設定可能です。
 
本コマンドは強力なバックグラウンドツールですが、付属の to_daemon.bat を
参照すると、デーモンとしても利用な事がわかります。
 
 
スタートアップに bat ファイルを設置する事でWindows 起動後、30秒後に
ブラウザ起動なども可能です。私の設定例。
myboot
 
Windows ログイン後、10秒後にコマンドプロンプトを立ち上げ、15秒後に
ファイラーを起動し、30秒後にブラウザを起動。
 
そして50秒後に、独自のデーモンプロセスを起動しています。
 
Windows 起動直後は重いこともあるので、本コマンドで遅延実行する事により、
日常の初回タスクを快適に起動する事ができます。

0 件のコメント:

コメントを投稿