Est-il possible pour nohup d'écrire la sortie à la fois dans le fichier nohup.out ET sur l'écran / le terminal?

23

J'utilise la bashcoque. J'utilise fréquemment nohuppour m'assurer que mes processus ne sont pas arrêtés lorsque je ferme le shell / terminal qui les a démarrés. J'utilise une syntaxe comme:

nohup myprocess

Au démarrage, nohupdonne le message:

nohup: ignoring input and appending output to 'nohup.out'

Ensuite, nohupne donne plus de sortie à l'écran; tout est écrit nohup.out.

Fréquemment, cependant, je voudrais surveiller la progression de mon calcul. Je peux le faire en lisant à l' nohup.outaide de viou tail, mais cela peut prendre beaucoup de temps, en particulier lorsque mes calculs prennent plusieurs heures.

Existe-t-il un moyen d'imprimer la sortie à la fois nohup.out (au cas où je perdrais la connexion Internet et que le terminal qui a lancé le processus est fermé) et à l'écran? Merci pour votre temps.

Andrew
la source
3
Avez-vous pensé à utiliser screenou à la tmuxplace de nohup?
derobert
@derobert Merci. J'ai screensur mon système, mais je ne l'ai jamais utilisé. Je n'ai pas tmuxsur mon système, mais je peux essayer de l'obtenir.
Andrew
2
Il suffit de lancer screen/ tmuxentre la connexion et le démarrage myprocess. Puis détacher avec prefix, d. screenle préfixe est Ctrl-A, tandis que tmuxle préfixe est Ctrl-B. Vous pouvez vous déconnecter mais tant que la machine reste en fonction, votre screen/ tmuxsession le sera également. La prochaine fois que vous vous connecterez, vous pourrez rattacher le screen/ tmuxshell, via screen -rou tmux attach.
jw013

Réponses:

20

Tu peux courir

nohup yourprocess & tail -f nohup.out
choroba
la source
queue -f est cool, malheureusement le mien ne parvient pas à afficher correctement les caractères de contrôle
Adam Hunyadi
Si vous souhaitez changer le nohup.out en autre chose, dites run.log, puis suivez-le, utilisez nohup myprocess> run.log 2> & 1 & tail -f run.log
Prajwel
16

Preuve.

nohup yourprocess 1>&2  | tee nohup.out &
Jhonathan
la source