Прямо сейчас я запускаю приложение Java, подключаясь к виртуальной машине через Google Cloud Compute. Я запускаю команду для запуска приложения, и оно загружает консоль. Как только я разрываю соединение SSH, приложение закрывается. Я предполагаю, что это потому, что консоль была закрыта.
Я хотел бы, чтобы это приложение (которое является сервером) сохранялось после завершения SSH, и в любой момент я хотел бы иметь возможность повторно подключиться к консоли и выполнять команды на сервере.
Ответы:
Вы заявляете это:
Немного расплывчато в целях, но я сделаю это!
Чтобы выполнить любую команду в качестве фонового процесса на сервере Linux, вы должны добавить команду к концу
nohup
и добавить&
в конец.Таким образом, последняя команда будет:
В
nohup
означает , что команда должна игнорировать «зависание окна» и амперсанда ,&
присоединенный к нему является командой оболочки , которая указует систему , чтобы запустить команду в качестве фонового процесса. Более подробную информацию о его использовании можно найти здесь .Когда вы запускаете команду, подобную этой, процесс запускается, вы будете отправлены обратно в командную строку, и вы можете выйти из сеанса терминала или даже пойти и сделать что-то еще, не связанное с этой командой, во время этого сеанса терминала.
источник
screen
вместо этого, поскольку это позволяет вам вернуться в сессию после запуска. Честно говоря, ваш вопрос очень расплывчат, поэтому, если бы вы могли его прояснить, это могло бы помочь прояснить ситуацию.tail -f nohup.out
в той же работе. реж.Есть как минимум три способа сделать это:
nohup
(«не вешай трубку»),screen
/tmux
илиdisown
. Ваш вопрос немного неясен относительно необходимости подключения к серверу и взаимодействия с демоном после отключения.Если это так,
nohup
иdisown
не будет хороших совпадений, когда вы выпускаете процесс (хотя он продолжает работать).tmux
(а такжеscreen
) будет продолжать работать, даже когда вы.Для получения дополнительной информации вы можете увидеть соответствующие страницы:
Отказ Bash (при условии, что вы используете Bash, хотя во многих других оболочках есть нечто подобное)
источник
disown
в Google Cloud нет команды, по крайней мере, экземпляр, который я использую, запущен в 2019 или в конце 2018. Командаnohup
работает нормально, но она создает дополнительный файл, который может быть не нужен.Чтобы отсоединить приложение от запущенной оболочки и сохранить его после выхода из оболочки, используйте
nohup
команду.Вы просто добавляете префикс к вашей обычной команде,
nohup
и она должна работать.источник
Также, если nohub не работает, вы можете использовать screen :
из
источник