J'effectue actuellement une sauvegarde qui doit maintenant être transférée sur une sauvegarde détachable, comme par exemple, tmux
ou screen
. Y a-t-il un moyen de faire cela lorsque la commande est en cours d'exécution?
Je peux envoyer la commande en arrière-plan en appuyant sur Ctrl+Z et le remettre en place en émettant une commande fg
. mais je ne sais pas si cette session peut revenir en arrière lorsque je quitte le terminal.
Cela fonctionne la plupart du temps:
Conditions préalables: avoir reptyr
et tmux
name __/screen
installé; vous pourrez les trouver avec apt-get
ou yum
name__, en fonction de votre plate-forme.
Utilisation Ctrl+Z suspendre le processus.
Reprendre le processus en arrière-plan avec bg
name__
Recherchez l'ID de processus du processus d'arrière-plan avec jobs -l
Vous verrez quelque chose de similaire à ceci:
[1]+ 11475 Stopped (signal) yourprocessname
Annulez le travail du parent actuel (Shell) avec disown yourprocessname
Démarrez tmux
(préféré) ou screen
name__.
Rattachez le processus à la session tmux
name __/screen
avec reptyr:
reptyr 11475
Vous pouvez maintenant détacher le multiplexeur (valeur par défaut). Ctrl+B, D pour tmux
name__, ou Ctrl+A, D screen
name__) et déconnectez SSH tant que votre processus se poursuit dans tmux
name __/screen
name__.
Plus tard, lorsque vous vous reconnecterez avec SSH, vous pourrez vous connecter à votre multiplexeur (par exemple tmux attach
).
reptyr
est bon mais j'ai une erreur de permission
$ reptyr 30622
[-] Unable to open the tty in the child.
Unable to attach to pid 30622: Permission denied
Puis trouvé-L Like '-l', but also redirect the child's stdio to the slave.
qui a fonctionné comme un charme
$ reptyr -L 30622
Opened a new pty: /dev/pts/4