TimeManager
TimeManager

TimeManager[tm]は、任意のプログラムの開始時刻と終了時刻を管理するプログラムです。 任意のプログラムとともに実行したり、パイプラインに組み込むことで、 プログラムを指定の時刻に実行、終了させることができます。

TimeManagerは以下のコマンドから構成されています。

最も基本的な使い方は以下です。setコマンドを使います。 TimeManagerでは、プロセスグループを基本とします。 時刻を管理したいプログラムは、TimeManagerと同じプロセスグループで実行します。

1 # Run my program for 60sec at 00:00:00 on 2000/01/01.
2 $ sh -c 'echo "946652400:60:This is my program" | tm set && myprogram'
3 
4 # 上記同スケジュールで音楽を再生する。(setコマンドは開始時刻までパイプラインの内容をせき止める)
5 $ sh -c 'echo "946652400:60:Play music.\nmusic.wav" | tm set | xargs aplay'

開始、終了時刻はスケジュールとして、プロセスグループごとに管理されます。 スケジュールは共有され、他のプロセスから参照できます。 スケジュールはscheduleコマンドで参照できます。

1 # 人間向け。
2 $ tm schedule
3 01/01 00:00-00:01 (1m) This is my program
4 
5 # プログラム向け。
6 $ tm schedule -r
7 946652400:60:This is my program

スケジュールが入っていない、空き時間を見つけることで、 他のプログラムの実行時刻を考慮した、プログラムの実行ができるようになります。 空き時間のスケジュールは、unoccupiedコマンドで取得することができます。

1 # (2018年)1月29日午前10時14分34秒から1時間はスケジュールが空いている。
2 $ echo "0:0:caption" | tm unoccupied
3 1517188474:3600:caption

特定の開始時刻を指定したい場合は、crontabコマンドを使うと便利です。

1 # (2017年)8月20日午前7時00分から10分間のスケジュールを作成する。
2 $ echo "0:600:今朝のニュース" | tm crontab "0 7 20 8 *"
3 1503180600:600:今朝のニュース

導入方法 (installには管理者権限が必要。/usr/local/binにイントールされます。)

1 $ git clone https://github.com/ll0s0ll/timemanager.git
2 $ cd timemanager
3 $ make
4 $ make install

Doxygen https://ll0s0ll.github.io/timemanager/

Last update 2018/02/22