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

Était-ce utile?

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)

  1. attacher à votre processus en utilisant gdb
  2. exécutez la commande suivante à l'invite GDB de rediriger stdout vers / tmp / titi

    $ imprimer dup2 (open ( "/ tmp / titi", 0), 1)

  3. exécuter ce qui suit pour rediriger stderr / tmp / newfile

    $ imprimer dup2 (open ( "/ tmp / titi", 0), 2)

  4. 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top