8

Прямо сейчас я запускаю приложение Java, подключаясь к виртуальной машине через Google Cloud Compute. Я запускаю команду для запуска приложения, и оно загружает консоль. Как только я разрываю соединение SSH, приложение закрывается. Я предполагаю, что это потому, что консоль была закрыта.

Я хотел бы, чтобы это приложение (которое является сервером) сохранялось после завершения SSH, и в любой момент я хотел бы иметь возможность повторно подключиться к консоли и выполнять команды на сервере.

3 ответа3

8

Вы заявляете это:

Я хотел бы, чтобы это приложение (которое является сервером) сохранялось после завершения SSH, и в любой момент я хотел бы иметь возможность повторно подключиться к консоли и выполнять команды на сервере.

Немного расплывчато в целях, но я сделаю это!

Чтобы запустить любую команду в качестве фонового процесса на сервере Linux, вы должны добавить команду с nohup и добавить & до конца.

Таким образом, последняя команда будет:

nohup [your command] &

nohup означает, что команда должна игнорировать «зависания», а амперсанд & добавленная к нему команда-оболочка говорят системе выполнить команду как фоновый процесс. Более подробную информацию о его использовании можно найти здесь.

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

2

Есть как минимум три способа сделать это: nohup («не вешать трубку»), screen/tmux или disown . Ваш вопрос немного неясен относительно необходимости подключения к серверу и взаимодействия с демоном после отключения.

Если это так, то nohup и disown не будут хорошими совпадениями, когда вы выпускаете процесс (хотя он продолжает работать). tmux (а также screen) будет держать термин в рабочем состоянии даже когда вы.

Для получения дополнительной информации вы можете увидеть соответствующие страницы:

man nohup
man tux

Отказ Bash (если вы работаете в Bash, хотя многие другие оболочки содержат нечто подобное)

1

Чтобы отсоединить приложение от запущенной оболочки, чтобы оно сохранялось после выхода из оболочки, используйте команду nohup .

Вы просто добавляете к своей нормальной команде префикс nohup и она должна работать.

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