Je lance un processus et interagis avec celui-ci (quelques actions d'entrée) au premier plan, puis il fonctionne longtemps, aussi je le mets en bg et je me déconnecte. Je veux rediriger les messages d'erreur dans un fichier texte, tout en traitant en arrière-plan et je ne suis pas connecté à la machine. Comment puis-je implémenter cela?
UPD : J'ai besoin de rediriger la sortie alors que le processus est déjà en cours d'exécution, car initialement, j'ai besoin d'une sortie de console.
cmd 2>&1 > /path/to/file.log &
cela redirigera stderr vers stdout et les deux vers un fichier. alors cela devient un processus en arrière-plan. avecfg
vous pouvez ramener le processus au premier plan.cmd 2> /path/to/file > /dev/null &
devrait marcherRéponses:
Vous pouvez démarrer le processus de manière interactive tout en redirigeant les messages d'erreur via
et vous pouvez maintenant attendre sa sortie, interagir avec elle, puis la mettre en arrière-plan, tout en conservant la redirection d'erreur standard.
la source
SSH dans, démarrez un processus, puis oubliez-le? Cela ressemble à un travail pour tmux ou écran . Vous pouvez laisser le processus en cours d'exécution, vous détacher de tmux et vous déconnecter sans le quitter.
Vous pouvez toujours rediriger l'erreur standard vers un fichier texte à l'aide de
2> log.txt
lorsque vous exécutez votre commande, et mêmetail -f
le fichier dans une autre fenêtre tmux.la source
Vous voulez commencer avec des messages d'erreur allant (non mis en mémoire tampon) dans le fichier texte, puis vous pouvez les regarder comme vous voulez (voir "tail -f"). En supposant un shell avec contrôle de travail, vous pouvez suspendre le travail en cours avec Ctrl-Z, puis "bg" pour le mettre en arrière-plan.
la source