起動時に Linux プログラムが実行されない

起動時に Linux プログラムが実行されない

スクリプトがいくつかあります: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 に行を追加することがあります。

関連情報