我有一个shell脚本,它使用“catalina.sh start”启动Tomcat。这个脚本运行良好并启动Tomcat,即使我退出ssh会话,它也会保持运行。
我正试图从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();
这会调用我的脚本fine和tomcat启动,但是一旦进程退出,tomcat就会收到一个关闭信号,它就会关闭。我尝试使用setdaemonthread但没有成功。知道为什么会这样吗?
更新:脚本还执行了一些与启动Tomcat无关的sudo操作,因此它需要tty。用户是在sudoers中设置的,因此不需要密码,因此不需要提示。