Выход из сеанса ssh -X с запущенной программой GUI, но оставление программы для запуска на удаленном хосте

У меня есть ssh-ed для удаленной машины. Я включил переадресацию X11 (ssh -X), и я начал программу GUI.

Программа занимает 5 минут, чтобы настроить некоторую обработку, но фактическая обработка занимает 1-2 часа. Я не хочу передавать данные во время работы программы. Я даже не хочу видеть программу снова, поскольку она выводит файлы как выходные, когда она заканчивается, и я могу просто scp их.

Итак, как я могу выйти из сеанса ssh, но оставить программу, запущенную на компьютере? CRTL + C в терминале?

EDIT: для ответа см. мой комментарий ниже.

Ответ 1

Короче говоря, вы не можете сделать это, не внося никаких изменений в способ, которым вы управляете. Приложение GUI требует, чтобы цель X-сервера принимала обновления GUI - если вы используете свой локальный X-сервер для этого, тогда для этого потребуется (1) соединение быть открытым (2), которое вы фактически обрабатываете обновления.

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

Ответ 2

Удивительно, я искал приемлемый ответ на свою проблему часами, и, наконец, один всплывает. ssh -X -f login @machine yourprogram отлично работал у меня. Хотя я использовал ssh -Y -f login @machine yourprogram. Это приводило меня в бешенство.

Ответ 3

Как и некоторые люди, SSH -X использует ваш локальный X-сервер, поэтому ему нужно подключение. У меня была та же проблема, я хотел выйти из ssh, но оставил приложения GUI. Для этого я установил сервер X и VNC на удаленный хост. С клиентом VNC на локальном компьютере вы можете легко подключиться к серверу VNC и отключить отключение приложений GUI.

Кстати, у вас будут лучшие выступления с VNC. В моем случае Firefox был очень медленным, и некоторые сайты вообще не загружались SSH -X, даже с оптимизациями -Y или -C.

Ответ 4

Запуск ssh -X -f [email protected] yourprogram должен сделать трюк.

Ответ 5

Запуск вашей программы с помощью nohup program & сделает все возможное, чтобы просто закрыть программу-терминал, все равно будет работать.

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