J'exécute actuellement une sauvegarde et elle doit maintenant être transférée vers une sauvegarde amovible comme sur tmux
ou screen
. Existe-t-il un moyen de le faire lorsque la commande est en cours d'exécution?
Je peux envoyer la commande en arrière-plan en appuyant sur Ctrl+ Zet la remettre en place en émettant une fg
commande. mais je ne sais pas si cette session peut revenir en arrière lorsque je quitte le terminal.
command-line
shell
gnu-screen
tmux
Jürgen Paul
la source
la source
Réponses:
Cela fonctionne, la plupart du temps:
Prérequis: avoir
reptyr
ettmux
/screen
installé; vous pourrez les retrouver avecapt-get
ouyum
, selon votre plateforme.Utilisez Ctrl+ Zpour suspendre le processus.
Reprenez le processus en arrière-plan avec
bg
Recherchez l'ID de processus du processus d'arrière-plan avec
jobs -l
Vous verrez quelque chose de similaire à ceci:
Désactivez le travail du parent actuel (shell) avec
disown yourprocessname
Démarrer
tmux
(préféré) ouscreen
.Rattachez le processus à la
tmux
/screen
session avec reptyr:Vous pouvez maintenant détacher le multiplexeur (par défaut Ctrl+ B, Dpour
tmux
ou Ctrl+ A, Dpourscreen
) et déconnecter SSH pendant que votre processus se poursuit danstmux
/screen
.Plus tard, lorsque vous vous connectez à nouveau avec SSH, vous pouvez ensuite vous connecter à votre multiplexeur (par exemple
tmux attach
).la source
sudo reptyr 1430
j'ai toujours eu: "... [-] Impossible d'ouvrir le tty chez l'enfant. Impossible de joindre au pid 1430: Autorisation refusée"echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
bg
, le processus devrait être exécuté en arrière-plan, doncjobs
devrait direRunning
plutôt queStopped
.reptyr
est bon mais j'ai une erreur de permissionPuis trouvé
-L Like '-l', but also redirect the child's stdio to the slave.
qui fonctionnait comme un charme
la source
-L
j'ai reçu un message comme le vôtre,Opened a new pty: /dev/pts/6
mais ma suspensiontop
n'apparaissait pas dans le tmux. Qu'est-ce que j'oublie ici?vous pouvez utiliser disown pour détacher le travail de son terminal, si cette commande est disponible.
il est plus sûr de l'exécuter avec nohup pour commencer.
la source
nohup
? Comment fonctionnedisowning
un processus?