起動時に10分ごとにアドレスをpingして結果をファイルに書き込むコマンドを実行したいと思います。 10分間隔でpingとファイルの書き込みを実行する方法を見つけました。
while true; do my-command-here; sleep 600; done
私の質問はこれを置くことができますか、それを/etc/init.d/rc.local
入れるべきですか/etc/rc.local
、それとも全く別の場所に置くべきですか?です。無限ループなので特に心配です。だから私は起動スクリプトの1つに入れることができるかどうかわかりません。
助けてくれてありがとう。 Ubuntu 12.04.5を使用しています
答え1
実際には無限ループではありません。これは10分ごとに実行する必要があるタスクです。したがって、ジョブはジョブスケジューラに入ることができますcron
。
コマンドを実行crontab -e
し、ファイルの下部に次の行を追加します。
*/10 * * * * /path/to/my-command-here
my-command-here
実行可能スクリプト(chmod u+x my-command-here
)であること、および最初の行が#!
スクリプトインタプリタの名前(通常は#!/bin/bash
)で始まることを確認してください。
パターンの各項目は、*/10 * * * *
分(0-59)、時間(0-23)、日(1-31)、月(1-12)、および曜日(0-6、ここで0 =日曜日)にマップされます。 。
答え2
/etc/init.d/rc.localに入れることはできますか?それとも/etc/rc.localや他の場所に置く必要がありますか?
に入れたら、rc.local
サブシェルに入れてバックグラウンドでフォークする必要があります。最後の行はrc.local
でなければならず、exit 0
ブロックされません。つまり、すべてのフォアグラウンドアクティビティは簡単でなければなりません。
(while true
do my-command-here
sleep 600
done) &
( )
サブシェルに入れて&
バックグラウンドに置きます。
問題が発生した場合、このQ&Aを確認してくださいデバッグ情報rc.local
。