Est-il possible de restaurer / récupérer nohup pour voir la sortie de la console?
-
27-09-2019 - |
Question
Je sais que les chances sont extrêmement faibles, mais est-il un moyen de voir ce qu'un processus nohup-ed a été récemment la sortie?
J'ai encore ce processus ouvert, mais je l'ai exécuté avec rediriger toutes les sorties vers / dev / null.
est-il un moyen de recouvrer ce processus à la console, ou est-il sans espoir: (
Vive
La solution
Il existe un moyen mais pas avant droite, l'astuce consiste à utiliser dup2 et dépend du fait que votre programme est lié à libc (que tous les c / c ++ applications seraient, mais une application Java serait pas être, par exemple)
- attacher à votre processus en utilisant gdb
-
exécutez la commande suivante à l'invite GDB de rediriger stdout vers / tmp / titi
$ imprimer dup2 (open ( "/ tmp / titi", 0), 1)
-
exécuter ce qui suit pour rediriger stderr / tmp / newfile
$ imprimer dup2 (open ( "/ tmp / titi", 0), 2)
- Détacher gdb de votre processus et votre fait
Qu'est-ce que dup2 fait est
dupliquer un descripteur de fichier Cela signifie que les stdout / stderr (1 et 2) et le nouveau descripteur de fichier renvoyé à partir ouvert peuvent être utilisés interchangeables qui entraînera toutes les sorties allant vers stdout et stderr pour aller au fichier que vous avez ouvert.