Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

linux 上で job を queue に投げて処理させる task spooler が便利

ちょっと前から task spooler を使ってる.

url は http://vicerveza.homeunix.net/~viric/soft/ts/ のあたり.

コマンド名は ts.

ts コマンドの後ろに実行コマンドをつけて実行すると queue に投げられます.

$ ts sleep 1
$ ts sleep 2
$ ts sleep 3

ts コマンドを実行すれば現在の queue の状態がわかります.

$ ts
ID   State      Output               E-Level  Times(r/u/s)   Command [run=1/1]
2    running    /tmp/ts-out.IIKhXK                           sleep 3
0    finished   /tmp/ts-out.37jBqt   0        1.01/0.00/0.00 sleep 1
1    finished   /tmp/ts-out.LHXMfz   0        2.01/0.00/0.00 sleep 2

ts -c [id] でログを参照.

ts -r [id] で queue にたまってる job の削除.

queue の状態をクリアするには ts -C.

ts コマンドを実行した際に,自動でサーバーが起動する形になっています.気になる場合には後始末してあげましょう.

$ ts -K

ほかにもいろいろとオプションがありますので気になる人は見てください.

上記は同時に1プロセスしか動作させていませんが,複数プロセスを同時に動かすこともできます.また,特定プロセスの終了待ちをする job を投げることもできます.

何に使ってるのかって?

手元で作ってる qbilinux のパッケージ作成に使っています.適当にパッケージ作成スクリプトを修正しながら,修正の終わったものをビルドするために queue に投げておくって感じです.はい.

しばらくして,終了結果を見て,駄目ならもう一度修正してから job を投げておくって感じですね.

昔はスクリプトを作って一気に流していましたが,最近は上記のやり方の方が便利かなと思って使ってます.

あ, task spooler にはプロセス終了時にメールで通知したり,複数マシンで分散処理させたりみたいな複雑な機能はなさそうなので,複雑な job 管理がしたければ別のソフト等を使った方が良いかなと思います.はい.

以上,ちょっとしたソフトの紹介でした.