Невозможно запустить сервер Apache Tomcat удаленно (Linux) - PullRequest
0 голосов
/ 11 октября 2018

Я пробовал следующее с небольшим успехом:

  1. удаленно запустить команду запуска catalina.sh

$ ssh -t server-name sudo -H -u myuser sh /catalina/home/path/bin/catalina.sh start Using CATALINA_BASE: /catalina/home/path Using CATALINA_HOME: /catalina/home/path Using CATALINA_TMPDIR: /catalina/home/path/temp Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-amd64 Using CLASSPATH: /catalina/home/path/../extraclasspathfiles:/catalina/home/path/bin/bootstrap.jar:/catalina/home/path/bin/tomcat-juli.jar Tomcat started. $ ssh -t server-name 'ps ax | grep java' 24322 pts/0 S+ 0:00 grep --color=auto java

не повезло

создать сценарий удаленного запуска и запустить его удаленно

вот содержимое файла remote.sh (он находится на сервере)

#!/bin/sh
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"
export CATALINA_HOME="/catalina/home/path"
/catalina/home/path/bin/startup.sh

затем мы запускаем сценарий удаленно

$ ssh -t server-name sudo -H -u myuser sh /catalina/home/path/bin/remote.sh/bin/remote.sh
Using CATALINA_BASE:   Using CATALINA_BASE:   /catalina/home/path
Using CATALINA_HOME:   Using CATALINA_HOME:   /catalina/home/path
Using CATALINA_TMPDIR: Using CATALINA_TMPDIR: /catalina/home/path/temp/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.8.0-openjdk-amd64
Using CLASSPATH:       Using JRE_HOME:        /usr/lib/jvm/java-1.8.0-openjdk-amd64/../extraclasspathfiles:Using CLASSPATH:       /catalina/home/path/../extraclasspathfiles:/catalina/home/path/bin/bootstrap.jar:/catalina/home/path/bin/tomcat-juli.jar/bin/bootstrap.jar:Tomcat started./bin/tomcat-juli.jar
Tomcat started.
$ ssh -t server-name 'ps ax | grep java'
24322 pts/0    S+     0:00 grep --color=auto java

опять не повезло

Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Я нашел ответ:

ssh server-name sudo -H -u username sh /path/to/generated/bin/startup.sh

-t вызывал проблему.

-t      Force pseudo-terminal allocation.  This can be used to execute arbitrary screen-based programs on a remote machine,
             which can be very useful, e.g. when implementing menu services.  Multiple -t options force tty allocation, even if ssh
             has no local tty.
0 голосов
/ 11 октября 2018

Вы запускаете Tomcat на server-name и выполняете ps локально.

Чтобы увидеть, работает ли Java на удаленной машине, вам нужно

ssh -t server-name 'ps ax | grep java'
...