我有一个使用“catalina.sh start”启动tomcat 的shell 脚本。该脚本运行良好并启动了即使我退出 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 中设置,因此不需要密码,因此不需要提示。