Maven アプリアセンブラー プラグインを使用して、Java Spring アプリケーション「myapp」の周りに Linux ラッパー スクリプトを生成しました。
次に、次のディレクトリ構造を取得します。
/home/myapp/platform/bin/myapp <== Script that I start manually
myapp スクリプトには「-rwxr-xr-x」権限があり、所有者は「myapp:myapp」に設定され、スクリプトはユーザー「myapp」として実行するように設定されています (ビルド時に Maven 設定から設定されます)。
ルートから次のコマンドを発行しました。
$ sudo ln -s /home/myapp/platform/bin/myapp /etc/init.d/service_myapp
これは、「lrwxrwxrwx」権限と「root:root」を所有者として持つシンボリック リンクを作成し、myapp スクリプトをポイントします。起動時にこのスクリプトを実行するだけで十分だと思いました。ただし、実行されていないようです。次のように手動で実行すると:
$ cd /etc/init.d/
$ ./service_myapp
次に、実行する前にパスワードの入力を求められます。
ここで何が起こっているのか、および/または私が間違っていることを誰かが説明できますか?
私もこれを試しました:
$ cd /etc/init.d/
$ update-rc.d service_myapp defaults 20
しかし、これを取得します:
update-rc.d: warning: /etc/init.d/service_myapp missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Adding system startup for /etc/init.d/service_myapp ...
/etc/rc0.d/K20service_myapp -> ../init.d/service_myapp
update-rc.d: symlink: Permission denied