関数がstart
あり、それをリモート サイトにあるスクリプトに配置します。関数のコードを以下に示します。
function start() {
cd $install_dir
mkdir -p logs
export classpath=$classpath:$target_jar
nohup java -Xms2048m -Xmx8192m -server -XX:PermSize=128m -XX:MaxPermSize=256m \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps \
-XX:-OmitStackTraceInFastThrow \
-cp $target_jar $main_class >> logs/jvm.log 2>&1 &
echo "Service started, see logs"
}
そして、その関数を ssh を使用して呼び出そうとするとssh xxx@host "./service.sh start"
、Java プロセスを開始できません。「サービスが開始されました。ログを参照してください」という応答メッセージしか表示されず、エラーはありません。jvm.log も空です。私のスクリプトは実行されたようですが、ターゲットの Java プロセスは実行されませんでした。
そのリモートサイトにログオンして実行する./service.sh start
と、動作します。