2

Вот сценарий.

Распределение Распбиана. Я запустил программу в сеансе SSH с непрерывным выводом на экран. Затем я приостановил его и disown него, чтобы выйти из сеанса, чтобы закрыть свой ноутбук и пойти спать.

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

Может ли кто-нибудь помочь мне в этом? Я много гуглил и пробовал такие подходы, как bg/jobs/fg , screen/tmux (я не использовал их до выдачи команды). Никто из них не работает.

Я пробовал reptyr с опцией -T как у целевого процесса есть дети. Это не удалось:

pi@raspberrypi:~ $ sudo reptyr 1583 -T
[-] Child is not connected to a pseudo-TTY. Unable to steal TTY.
Unable to attach to pid 1583: Invalid argument

1 ответ1

-1

Сначала вам нужно будет запустить screen . Это позволит вам отсоединить весь сеанс и снова его запустить. Если у вас не установлен экран, вы можете установить его, запустив:

sudo apt-get install screen

После установки сначала запустите screen . Это откроет новую оболочку в псевдо-tty. После запуска программы нажмите Ctrl-A D чтобы отсоединить сеанс от экрана. Теперь вы можете безопасно выйти из системы, и программа продолжит работу.

Для возобновления работы SSH вернитесь и запустите screen -r . Вы окажетесь там, где остановились, и увидите текущий результат.

Другой вариант - запустить экран, но запустить программу так:

mypgm > output.log 2>&1 &

Это запустит программу в фоновом режиме, перенаправив весь вывод и ошибки в output.log .

Затем вы можете просмотреть прогресс, выполнив tail -f output.log

Нажмите Ctrl-C чтобы выйти из команды tail -f .

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