プログラムの毎日の実行時間を設定するきちんとした方法

プログラムの毎日の実行時間を設定するきちんとした方法

ちょっと愚かな質問ですが、私のコンピュータの電源が入っている時間に関係なく、毎日午前5時から午前6時まで、午後6時から7時までにネットワークデーモン(wicd)が自分のコンピュータで実行されるようにしたいと思います。プロセスが実行されているがその時間ではない場合は、プロセスを終了する必要があります。これを行う最も簡単な方法は何ですか?明らかにcrontabを使用し、wicdが午前5時と午後6時に実行されるcronjobを作成すると、例えばkillallが午前6時と午後7時にこれを削除すると問題が発生します。最初に実行するので、初期化スクリプト(私の初期化用のSysV)を作成して、初期化時にwicdを実行または実行しないことがあります。ここで現在時刻を確認します。切り取る必要があるようですが、これは唯一の作業方法ですか?この問題を解決する方法はありますか?それとも、コンピュータの電源が入っている時間に関係なく、指定された時間だけプログラムを実行させるより簡単な方法はありますか?

ベストアンサー1

1つの方法は次のとおりです。CFエンジン、方針はおおよそ次のとおりです。

bundle agent mybundle {

  services:
    Hr5|Hr18::
      "wicd"
        service_policy => "start";

    !(Hr5|Hr18)::
      "wicd"
        service_policy => "stop";

}

CFEngineのデフォルトの実行間隔は5分ごとです(ホストグループが同時に実行されないように遅延があります)。したがって、例では、午前5時4分にシステムを起動した後、サービスは次の時間内に実行されます。 5分。その後、午前6時以降(6時から6時5分まで)にCFEngineを実行すると、サービスが停止します。

おすすめ記事