7
votes

Redirection de stdout & stardr du processus de fond

J'ai un script appelé FOO qui exécute le programme A.exe et envoie les statistiques de synchronisation à un fichier, time.log xxx pré>

ceci fonctionne si j'exécute le script en arrière-plan de Mon terminal et garde ma coquille ouverte jusqu'à ce que l'A.exe se termine, mais si j'exécute le script en arrière-plan et quitter mon terminal (A.exe prend beaucoup de temps à exécuter) P>

foo & 
exit


0 commentaires

5 Réponses :


7
votes
nohup utility [arg ...]

0 commentaires

0
votes

Essayez:

nohup <your_command> &


0 commentaires

0
votes

N'oubliez pas de supprimer toutes les références au TTY / PTS, 0


0 commentaires

2
votes

Étant donné que la question est étiquetée comme bash aussi, je cite à partir de homme Bash xxx

Ceci est utile quand vous avez commencé quand vous avez commencé quand vous avez commencé. Un travail mais j'ai oublié de le préfixer avec nohup . Juste faire xxx


0 commentaires

0
votes

Votre A.exe est tué lorsque vous fermez la coque mère.

Vous pouvez taper l'écran, exécuter la commande comme d'habitude et quitter l'écran. Cela empêche le processus d'être tué lorsque la coquille mère est sorties. Cette méthode est un peu encombrante mais pourrait être pratique dans d'autres situations.

John a donné une bonne réponse - Utilisez NoHUP.


1 commentaires

Exactement. Si vous savez à l'avance, vous pouvez commencer un processus à long terme, ou si vous êtes sur une connexion instable, vous devez utiliser écran ou tmux . Ces programmes vous donnent beaucoup plus de flexibilité dans la gestion d'emplois et la gestion de la fenêtre.