2

Я запускаю Spigot-сервер на экране, это Java-приложение. Когда он аварийно завершает работу и корректно завершает работу, он вызывает скрипт перезапуска в качестве последнего действия.

Этот скрипт просто содержит java -jar spigot.jar . Проблема в том, что когда сервер отключается, он перезагружается вне экрана . Не хорошо, я хочу, чтобы перезапущенный процесс работал на том же экране.

Я попробовал старый добрый screen -S test -p 0 -X stuff 'java -jar spigot.jar^M' , но он отправил строку в консоль приложения java, а не в командную строку.

Поэтому я попытался отсоединить этот вызов от родителя, этот трюк теоретически делает это: (sleep 20&);java -jar spigot.jar , но безрезультатно .

Так... Я действительно не знаю, что делать. Пожалуйста, порекомендуйте.

2 ответа2

1

он отправил строку в консоль приложения Java, а не в командную строку.

Ява нужно некоторое время, чтобы выйти.
Перезапустите скрипт bash -c "sleep 20; screen -S test -p 0 -X stuff 'java -jar spigot.jar^M' "

0
# Creates detached session named spigot
screen -S spigot -d -m
# Runs "java -jar spigot.jar" in spigot session
screen -S spigot -X stuff "java -jar spigot.jar^M"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .