起動時に実行する必要がある2つのプログラムがあります。私のシステムの仮想マシンにsystemctlがないので、init.dスクリプトを使用します。私の設定によると、program_Aは機能しますが、program_Bは機能しません。起動したように見えますが、期待どおりにシステムログに記録されていないため、動作しません。
私の設定は次のとおりです。
/usr/bin/Program_A
/usr/bin/Program_B
...
/etc/init.d/Program_A.sh
/etc/init.d/Program_B.sh
そのうち、Program_A.shとProgram_B.shは似ています。
#!/bin/bash
sudo /usr/bin/Program_A &
disown
初期化ファイルを作成し、実行ファイルをコピーして実行しました。
update-rc.d Program_A.sh defaults
update-rc.d Program_B.sh defaults
注1:スクリプトに「&」と「disown」を追加する必要がありました。そうしないと、program_Aが停止してprogram_Bを起動できなくなるからです。
ノート2: 次のコマンドを実行すると、両方のプログラムが正常に動作します。
sudo /usr/bin/Program_X
ノート3 「拒否」を削除し、program_Bのみを起動しました。それでも動作しません。init.dでスクリプトを実行すると、起動時にスクリプトを起動するのとは異なります。。
次のプログラムを起動したことを確認できます。
ps -aux | grep Program_B
root 1905 0.0 0.2 2308 868 ? S 09:13 0:00
/usr/bin/Program_B
ただし、システムログのファイルは更新されません。その結果、プログラムが実行されないか、プログラムが別の名前で始まり、syslogフィルタが効果的になりません。