1分後にシェルスクリプトを起動する方法は?1分後にlinuxでシェルスクリプトを起動する方法は?
a.shとb.shの2つのファイルがあるとします。
a.shを実行してからb.shを1分(または数秒)実行します。
a.shで何をコーディングすべきですか?
1分後にシェルスクリプトを起動する方法は?1分後にlinuxでシェルスクリプトを起動する方法は?
a.shとb.shの2つのファイルがあるとします。
a.shを実行してからb.shを1分(または数秒)実行します。
a.shで何をコーディングすべきですか?
シンプルです。あなたはあなたの仕事をスケジュールするために 'at'を使いたいと思っています。将来のあなたの瞬間を計算するために '日付'と '
例:
echo b.sh | at now + 1 minute
か:
echo b.sh | at -t `date -v+60S "+%Y%m%d%H%M%S"`
-v+60S
は、現在の時刻に60秒を追加します。追加する秒数を正確に制御することができます。
しかし、通常、1つのプログラムが1分後に1つのプログラムを起動することを望む場合、100分後に1分以上かかることはありません。それでおしまい。 a.sh
が完了する前にb.sh
を起動することができました。またはa.sh
は "計画済み"より30秒早く終了する可能性があり、b.shがより早く開始する可能性があります。
私は別のモデルをお勧めします。最初にb.sh
が起動されます。 a.sh
は、起動時に一時ファイルを作成します。タスクは実行され、最後に一時ファイルが削除されます。 b.sh
一時ファイルが作成され、次に削除されるのを監視します。タスクを開始します。
a.shの最終行してください:あなたはでき
sleep 60 && b.sh
(b.shがPATH内のディレクトリにない場合は、フルパスをb.sh.することを確認)
をただsleep
:
a.sh
sleep 60
b.sh
以上の複雑なケースのためにあなたがat
コマンドを使用することができます。
詳細については、at
のマニュアルページを参照してください。
私は後で試してみます –
いいえ、それは期待どおりにb.shを実行しますBTW、10秒後にそれを実行する方法?分を2番目に変更しました。構文エラーです。 –
@alexchan: 'at'は1分より細かい時間の増分を行いません。 –
このコマンドを使用して、スクリプトを1分間スリープ状態にすることができます。
その後sleep 1m
あなたは
bash a.sh
at
コマンドを使用して第二のスクリプトを呼び出したいです。
使用方法はman at
を参照してください。
あなたが最初のスクリプトの開始後に第2のスクリプトを秒のいくつかの数を実行したい場合は、あなたが最初にこれを行うことができます:
秒でb.sh &
と、これを:
sleep 10
# more commands
第1から第2までの引数として秒数を渡すことができます。
残念ながら、at
は1分より細かい時間増分を行いません。
両方のスクリプトを同時にcronで実行し、必要な遅延をb.shに設定します。
はい、ありがとうございます!それはまさに私が欲しいものです。しかし、おそらく少しの間違いがありますか? "日付が無効です--v" –
@alexchan:異なるバージョンの 'date'は異なるオプションをサポートしています。試してみましょう: 'echo b.sh |今すぐ+ 1分 ' –
b.shはビジュアルウィンドウで実行されますか?そしてどうやって? –