バックグラウンドでコマンドの実行を遅らせるには?

バックグラウンドでコマンドの実行を遅らせるには?

誰かがこれを行うプログラムを書く方法を教えてもらえますか? 5分後

echo "80" > /sys/class/leds/blue/brightness

このプログラムをサービスのようにバックグラウンドで実行したいと思います。rngd私はLinuxについてはよくわからないので、そうすることはできません。

ベストアンサー1

( sleep 300 ; echo "80" > /sys/class/leds/blue/brightness ) &

これにより、スクリプトが続行されるか、新しいスクリプトが実行されている間にすぐに制御権を取得できます。バックグラウンドタスクスクリプトの先頭には、sleepとechoという2つのコマンドがあります。

一般的な間違いは、これらのいずれかまたは両方を提供しようとしましたが、sleep期待どおりに機能しないことです。一連のコマンドを実行すると、そのコマンドを別のシェルプロセスで作成して使用できます。echo&()&


とても便利だと思いました。私が開発した組み込みデバイスには、監視デバイスと連携する基本的なアプリケーションがあります。起動直後にウォッチドッグリセットをトリガする方法で失敗した場合、OS起動とリセットの間の時間はSSHログインが発生し、アプリケーションが起動しないほど長くないため、リモートで変更することは困難です。そのため、システムがどれだけ早く再起動するかを確認し、再起動時に遅延を導入して手動で問題を解決する時間を確保する方法が必要です。

 [ -f /tmp/startdelay ] && sleep 30
 touch /tmp/startdelay
 ( sleep 30 ; rm /tmp/startdelay ) &
 [ -f /tmp/noautostart ] && exit 0
 start_app

ログインして実行すると、デフォルトのtouch /tmp/noautostartアプリケーションは起動しません。ウォッチドッグが起動すると実行されず、rm /tmp/startdelay次回のシステム起動時に停止するための追加の30秒があります。それ以外の場合は、再起動が速く、遅延が発生しません。

おすすめ記事