В настоящее время я выполняю резервное копирование, и теперь его нужно перенести на съемный, например, на tmux
или screen
. Есть ли способ сделать это, когда команда в данный момент выполняется?
Я могу отправить команду фону, нажав Ctrl+, Zи вернуть ее обратно, введя fg
команду. но я не знаю, может ли эта сессия вернуться, когда я выхожу из терминала.
command-line
shell
gnu-screen
tmux
Юрген Пауль
источник
источник
Ответы:
Это работает, в большинстве случаев:
Пререквизиты: есть
reptyr
иtmux
/screen
установлены; Вы сможете найти их сapt-get
илиyum
, в зависимости от вашей платформы.Используйте Ctrl+, Zчтобы приостановить процесс.
Возобновите процесс в фоновом режиме с
bg
Найдите идентификатор процесса фонового процесса с помощью
jobs -l
Вы увидите нечто похожее на это:
Отключить работу от текущего родителя (оболочки) с
disown yourprocessname
Начало
tmux
(предпочтительно) илиscreen
.Снова подключите процесс к
tmux
/screen
сеансу с reptyr:Теперь вы можете отсоединить мультиплексор (по умолчанию Ctrl+ B, Dдля
tmux
или Ctrl+ A, Dдляscreen
) и отключить SSH, пока ваш процесс продолжается вtmux
/screen
.Позже, когда вы снова подключитесь к SSH, вы сможете подключиться к мультиплексору (например
tmux attach
).источник
sudo reptyr 1430
я все еще получал: «... [-] Невозможно открыть tty у ребенка. Невозможно прикрепить к pid 1430: В доступе отказано»echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
bg
этого процесс должен быть запущен в фоновом режиме, такjobs
сказать,Running
а неStopped
.reptyr
это хорошо, но я получил ошибку разрешенияПотом нашел
-L Like '-l', but also redirect the child's stdio to the slave.
который работал как шарм
источник
-L
я получил сообщение, похожее на ваше,Opened a new pty: /dev/pts/6
но мое отстраненноеtop
не появилось в tmux. что мне здесь не хватает?Вы можете использовать disown, чтобы отсоединить задание от его терминала, если эта команда доступна.
для начала безопаснее запустить его с nohup.
источник
nohup
? Как работаетdisowning
процесс?