「catalina.sh start」を使用して tomcat を起動するシェル スクリプトがあります。このスクリプトは問題なく実行され、ssh セッションを終了しても tomcat が起動します。
Jschからこのスクリプトを呼び出そうとしています
shell = new JSch();
session = shell.getSession(user, host, SSH_DEFAULT_PORT);
session.setConfig(config);
session.setPassword(password);
session.connect();
commandChannel = (ChannelExec) session.openChannel("exec");
commandChannel.setCommand(command);
commandChannel.setPty(true);
commandChannel.connect();
これにより、スクリプトが正常に呼び出され、Tomcat が起動しますが、プロセスが終了するとすぐに、Tomcat にシャットダウン シグナルが送られ、シャットダウンします。setDaemonThread を使用しようとしましたが成功しませんでした。なぜこれが起こっているのですか?
更新: このスクリプトは、Tomcat の起動とは関係のない sudo 操作もいくつか実行するため、tty が必要です。ユーザーはパスワードを要求しないように sudoers で設定されているため、プロンプトは必要ありません。