次のように、JJSコマンドラインスクリプトファイルを使用して起動されたUbuntu 20.04サーバーにJavaアプリケーションをインストールしました。
#!../lib/bin/jre/bin/jjs -scripting function myJAVA(c){ bala bala bala ......}
通常、このアプリケーションを実行するには、次の手順2を実行する必要があります。
# cd /my_app_path/MsgPro/bin
# ./myJAVA start
明らかにbinフォルダに移動し、そこからスクリプトを実行する必要があります。それ以外の場合(別のフォルダで実行している場合)、次のエラーが発生します。
bash: ./bin/msgProcessor: ../lib/bin/jre/bin/jjs: bad interpreter: No such file or directory
私はJavaについてはまったくわかりませんが、systemctlを介してmyJAVA.serviceを生成するように求められました。これにより、サーバーが再起動または予期せず終了した場合、アプリケーションは自動的に再起動します。
/etc/system/systemd/myJAVA.serviceにこれを実行できる単位ファイルがあることを知っていますが、どのように機能させるかはわかりません。以下は私の単位ファイルです。
[Unit]
Description=myJAVA Daemon
After=network-online.target
[Service]
User=root
Environment=PATH=/bin:/sbin:/usr/bin:/usr/sbin
ExecStart=/my_app_path/MsgPro/bin/myJAVA start
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
私のExecStartまたは環境が間違っているようですが、正しいことが何であるかわかりません。
どんな助けでもいただければ幸いです。
ベストアンサー1
スクリプトの最初の行を設定します。
#!../lib/bin/jre/bin/jjs
相対パスではなく絶対パスです(インタプリタの場合)。
ただプログラムを実行するには、スクリプトを次のようにします。
....../lib/bin/jre/bin/jjs -scripting function myJAVA(c){ bala bala bala ......}
プログラムの絶対パスをリセットする