web-dev-qa-db-ja.com

特定の時間のBash Runコマンド?

私は自分の使用のためにbashスクリプトを作成しています。 20秒などの特定の時間コマンドを実行してコマンドを終了するにはどうすればよいですか?インターネットから多くの解決策を試しましたが、何も機能しません。また、タイムアウトコマンドを試しましたが成功しませんでした。これに対する解決策をいくつか教えてください。

前もって感謝します

更新

例:10秒後にスクリプトとターミナルでこのコマンドを実行したい

some command
25
Umair Riaz

以下に、問題を解決する可能性のあるbashスクリプトとtimelimitというプログラムを示します。 しばらくの間実行が許可された後にプロセスを停止

編集:私はより良い解決策を見つけたと思う。タイムアウトプログラムを使用してみてください。 manページから:「タイムアウト-制限時間付きでコマンドを実行する」。例えば:

timeout 5s sleep 10s

基本的にコマンドを実行し、指定された期間が経過するとコマンドを強制終了します。

53
Roberto Gomez

timeoutコマンドを提供しないシステムでは、次を使用できます。

your-cmd & sleep 30 ; kill $!

潜在的に長時間実行されるyour-cmdタイムアウトが30秒。

your-cmdは30秒以内に終了せず、TERM信号が送信されます。

14
mato

スクリプトの実行をスケジュールしますか? cron はあなたの友達です。

1
Matthew Graves

私は2つのオプションを提案します:

  • timeoutコマンドがあるシステムでは、man timeoutに従って使用できます。
  • それがないシステム(CentOS 5など)では、bash /usr/share/doc/bash-3.2/scripts/timeoutで提供されるスクリプトを使用できます。使用情報に従って使用してください。
0
keypress