0

特定の日時に「a.out」を開始する必要があります。たとえば、「a.out」を午後12時10分30秒に正確に開始したいとします。どんなアイデアでも大歓迎です!

4

2 に答える 2

4

それが、cronおよび/またはそのat目的です。

解像度は1分しかないためcron、12:09に実行されるスクリプトを設定することをお勧めします。

次に、このスクリプトは、正確に12:10:30になるまで日付と時刻をチェックするタイトなループに入り、「実際の」コードを実行します。

したがって、cronエントリは次のようになります。

9 12 * * * /mydir/myscript

そして、/mydir/myscript次のようになります:

#!/bin/bash
while [[ $(date +%H%M%S) -lt 121030 ; do
    sleep 1
done
/mydir/myexecutable

それは、同じ時刻に何日も実行したい場合です。ワンショット実行の場合でも、スクリプトを使用できますが、スクリプトatを実行するために使用します(時間文字列はYYYYMMDDhhmm):

at -f /mydir/myscript -t 201212311209

または、at十分に進んでいる場合は、オプションで1分未満の指定を許可-tして、ラッパージョブが長すぎないようにすることができます(の時間文字列YYYYMMDDhhmm.ss)。

at -f /mydir/myscript -t 201212311210.25
于 2012-10-12T01:35:11.930 に答える
3

これは単純です:

at 1210 <<< "sleep 30; /path/to/a.out"

atコマンドは、特定の時間にコマンドを実行するように特別に設計されています。cron異なる、それは繰り返されるタスクのために設計されています。

見るman 1 at

于 2012-10-12T01:36:07.030 に答える