スクリプトがいくつかあります:collection.sh
start.sh
script1.sh
およびscript2.sh
。これらを起動時に実行するように設定してあります:
collection.sh
通話start.sh
start.sh
両方を呼び出すscript?.sh
コレクションは次のように設定されます。
$ cp collection.sh /etc/init.d/
$ update-rc.d collection.sh defaults 99
collection.sh を手動で実行すると (つまり$ . /etc/init.d/collection.sh
)、すべてが期待どおりに動作しますが、再起動するか、完全にシャットダウンしてコンピューターを起動すると、collection.sh は実行されますが、start.sh は実行されません。
わかりやすくするために、各スクリプトの例を以下に示します。
collection.sh
:. /path/to/start.sh &
start.sh
:./script1.sh & ./script2.sh &
script1.sh/script2.sh
:while : do #does some stuff here #yes this is an infinite loop done
collection.sh
開始される (実際には 2 回) ことと、開始されないことを確認した print ステートメントがありますstart.sh
。
私も確認しましたが、ps aux | grep collection.sh
それを使用するcollection.sh
と完了します。
答え1
パスに問題がある可能性があります。
start.shのPATHを変更するか、start.shでフルパスを使用してscript[12].shを起動する
どのディストリビューションを使用しているかは言及されていません (それぞれがわずかに異なります) -- 強力なアプローチとして、/etc/rc.local に行を追加することがあります。