Журналы не создаются при запуске jar на удаленном компьютере через SSH - PullRequest
0 голосов
/ 02 мая 2018

Примите следующие настройки:

  • Машина A: пользователь A @
  • MachineB: пользователь B @

Я хочу запустить JAR на машине B:

Когда я запускаю это так:
java -jar myApplication.jar > /dev/null 2>&1 & Все идет хорошо, и журналы создаются рядом с моим JAR-файлом.

Когда я запускаю его через ssh с машины A:
ssh userB@<ipB> "java -jar myApplication.jar > /dev/null 2>&1 &"

Приложение запускается на компьютере B, но файлы журнала не создаются.

Кстати, jar - это обычное приложение для весенней загрузки, которое использует logback для регистрации.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

ОК, приложение работало и создавались журналы, но не там, где я ожидал.

В файле конфигурации myApplication было свойство
logging.file=logs/myApplication.log

Когда я запускал свое приложение через SSH, папка, из которой он выполнялся, была /home/userB, а не /home/userB/deployment/build.
По этой причине журналы создавались не в той же папке, где находилось приложение, а в домашней папке пользователя B.

Исправление было в cd в определенной папке, до запуска приложения.

0 голосов
/ 02 мая 2018

Ваше приложение уничтожается, прежде чем оно даже сможет создать файл журнала. Вероятно, это будет работать, если вы удалите последний амперсанд из вашей команды:

ssh userB@<ipB> "java -jar myApplication.jar > /dev/null 2>&1"

При наличии амперсанда команда помещается на задний план. Поскольку оболочка, созданная процессом ssh, не имеет приоритетных заданий, она немедленно закрывает соединение. Когда соединение закрыто, машина B уничтожает все дочерние процессы команды, включая приложение Java.

Вы также можете использовать nohup для отсоединения процесса Java, чтобы он не был убит при закрытии соединения ssh. Это дает дополнительное преимущество: приложение будет продолжать работать, даже если ваше соединение прервано:

ssh userB@<ipB> "nohup java -jar myApplication.jar > /dev/null 2>&1 < /dev/null &"

Вам также может быть полезно проверить screen и tmux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...