60 votes

Transfert de la commande en cours vers une session détachable (tmux/screen)

Je suis actuellement en train de faire une sauvegarde et il faut maintenant la transférer vers un détachable comme sur tmux o 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 un fg mais je ne sais pas si cette session peut revenir en arrière lorsque je quitte le terminal.

69voto

Ville Points 2430

Cela fonctionne, la plupart du temps :

Conditions préalables : avoir reptyr y tmux / screen installés ; vous pourrez les trouver avec apt-get o yum en fonction de votre plateforme.

  1. Utilisez Ctrl + Z pour suspendre le processus.

  2. Reprenez le processus en arrière-plan avec bg

  3. Trouvez l'ID du processus de fond avec jobs -l

    Vous verrez quelque chose de similaire à ceci :

    [1]+ 11475 Stopped (signal) yourprocessname
  4. Désavouer le travail du parent actuel (Shell) avec disown yourprocessname

  5. Début tmux (de préférence), ou screen .

  6. Réattachez le processus au tmux / screen session avec reptyr :

    reptyr 11475
  7. Maintenant, vous pouvez détacher le multiplexeur (par défaut Ctrl + B , D para tmux ou Ctrl + A , D para screen ), et déconnectez SSH pendant que votre processus continue dans tmux / screen .

  8. Plus tard, lorsque vous vous connecterez à nouveau avec SSH, vous pourrez alors vous attacher à votre multiplexeur (par ex. tmux attach ).

5voto

kqw Points 2451

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 a 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

-1voto

johnshen64 Points 4503

Vous pouvez utiliser disown pour détacher le job de son terminal, si cette commande est disponible.

il est plus sûr de l'exécuter avec nohup pour commencer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X