Jvmで実行されるシェルスクリプトがあります。次のように記述します。sh /opt/bin/myshel.sh
/etc/inti.dに次の詳細を含むシェルスクリプトを追加しました。
#! /bin/sh
### BEGIN INIT INFO
# Provides: WSO2Services.sh
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
/opt/bin/myshel.sh
このファイルを「myShell.sh」として「/etc/init.d」に保存し、モードを実行可能ファイルに変更しました。また、Sudo update-rc.d myShell.sh defaults
を使用して「rc * .d」ファイルを更新しました。問題は、再起動時に実行されていないことです。
起動時に何かを実行する最も簡単な方法は、それを/etc/rc.localに置くことです。完全なSysV initスクリプトを作成する場合は、既存のスクリプトをテンプレートとして使用することをお勧めします。また、アップスタートジョブの使用を検討することもできます。
最初に/etc/inittab
ファイルを確認してください。 id:2:initdefault
のような行があるので、ランレベル2
(私の場合)から始まります。したがって、これは起動時に開始されます:/etc/init.d/rc 2
。したがって、/etc/rc2.d
でS ## somename(#は10進数)で始まるすべてのスクリプトが実行されます。これらは、/etc/init.d
のスクリプトへのシンボリックリンクです。
あなたの場合も同様のことをしなければなりません。ランレベルが2
の場合は、/ etc/rc2.d/S ## myshell.shに../init.d/myshel.sh
のスクリプトへのシンボリックリンクを作成します。その後、起動中に実行されます。同じスクリプトレベル(S
の後の小数点以下2桁)のスクリプトは並行して実行されることに注意してください。
/etc/init.d内のファイルがどのように見えるか、どの引数をサポートする必要があるかを確認することをお勧めします。