Как запустить удаленную команду Linux, которая не остановится после закрытия оболочки

-1

Есть команда терминала Linux, которую я хочу запустить на удаленной машине. Я могу подключиться к машине по ssh и начать выполнение команды (ее вывод направляется в выходной файл); однако, как только я закрываю соединение ssh и закрываю окно терминала, команда останавливается. Как я могу продолжить выполнение команды даже после выхода из удаленного компьютера?

Nosrettap
источник
Обычно это не так, как работает linux ... Команда будет продолжать работать на «сервере» даже после отключения от ssh ... Не могли бы вы описать, какой у вас дистрибутив linux, и какую команду вы пытаетесь запустить?
Просто повезло на самом деле
Это машина RedHat, и команда выполняет программу Java. Сама команда не будет иметь большого смысла для вас, потому что она проприетарна.
Nosrettap
Вы пробовали добавить амперсанд после команды? Пример:runThis -params &
Просто повезло на самом деле
Я немного подумал, и мне было интересно, является ли команда, которую вы пытаетесь выполнить, «терминальной» командой. Так, например, если я ssh на сервер и использую vi filename, это не будет работать на сервере. Мне никогда не приходилось обходить эту проблему, но с небольшим количеством Google, похоже, это nohupможет помочь
Just Lucky Really
1
Вы пробовали nohup и удваивать фон? Кроме того, «отсоедините» дескрипторы stdout и stderr. Запустите его так: ((nohup mycommand 1> / dev / null 2> & 1) &)
SadBunny

Ответы:

1

Я рекомендую использовать экран . Со страницы руководства:

Программы продолжают работать, когда их окно в данный момент не видно и даже когда весь сеанс экрана отсоединен от пользовательского терминала

Альтернативой является nohup .

agtoever
источник