SYNOPSIS
reptyr PIDreptyr -l
DESCRIPTION
reptyr est un utilitaire qui prend un programme en cours d'exécution et l'attache à un nouveau terminal. Vous avez démarré un programme long à travers ssh, mais vous devez partir et vous ne voulez pas l'interrompre ? Démarrez simplement un screen, utilisez reptyr pour l'attraper, puis tuez la session ssh et vous pouvez rentrer à la maison.
reptyr fonctionne en s'attachant au programme visé à l'aide de ptrace(2), en redirigeant les descripteurs de fichiers appropriés et en modifiant le terminal de contrôle du programme (Voir tty(4)) C'est le détail qui fait que reptyr focntionne bien mieux que les autres programmes du même type, comme retty(1).
Après avoir attaché un programme, il apparaît soit à l'arrière-plan, soit suspendu pour le shell qui l'a lancé (variable en fonction du shell). Pour une sécurité maximale, vous pouvez exécuter
- bg; disown
dans le vieux shell pour supprimer l'association avec le programme, mais reptyr tente de s'assurer que le programme visé reste en cours d'exécution même si vous fermez le shell sans le faire.
OPTIONS
-l
- Plutôt que d'attacher un nouveau processus, crée un couveau couple de pty, redirige l'extrémité maîtresse vers le terminal en corus, puis affiche le nom du pty esclave. Il pourra être passé en argument par exemple à l'option set inferior-tty de gdb.
-s
-
Par défaut, reptyr déplace tout descripteur de fichier de la cible qui était connecté au terminal de contrôle vers le nouveau terminal. L'option -s fait que reptyr attache les descripteurs de fichiers 0, 1 et 2 sans condition même si la cible n'a pas de terminal de contrôle ou qu'elle n'est pas connectée à un terminal.
-v
- Affiche la version de reptyr et sort.
-h
- Affiche un message d'usage et sort.
-V
- Affiche des messages verbeux.
NOTES
reptyr dépend de l'appel système ptrace(2) pour s'attacher au programme distant. Sur Ubuntu Maverick et suivant cette possibilité est désactivée par défaut pour des raisons de sécurité. Vous pouvez l'activer temporairement avec
-
# echo 0 > /proc/sys/kernel/yama/ptrace_scope
en tant que rootn ou de manière permanente en éditant le fichier /etc/sysctl.d/10-ptrace.conf, ui contient aussi plus d'information sur ce réglage.
BUGS
Quand on s'attache à quelques programmes curses, ils ne redessinent pas immédiatement l'écran, et un ^L ou équivalent est nécessaire pour forcer l'actualisation.
De la même manière, après avoir attaché certains programmes, le vieux terminal est dans un état étrange et un clear ou même un reset est nécessaire avant que le vieux terminal ne soit à nouveau utilisable.
L'attachement à rtorrent (et peut-être à d'autres applications) ne fonctionne pas (rtorrent arrête d'accepter des entrées). Le problème est que rtorrent utilise epoll pour vérifier l'entrée standard et qu'on ne met pas à jour la référence interne que le descripteur de fichier d'epoll a de l'ancien terminal.
L'attachement à un processus avec des fils ne fonctionne pas correctement. Il devrait être possible de le corriger. Il faut juste ptracer chaque fils individuellement et de jouer avec lui.
L'attachement à un processus less(1) ne fonctionne pas si vous avez un fichier .lessfilter parce que less abandonne un fils zombie dans ce cas. Ça devrait pouvoir être corrigé.
Vous pouvez rapporter des bugs à l'auteur (voir ci-dessous) ou par l'issue tracker sur GitHub.
HOMEPAGE