37 votes

Exécuter une commande dans un shell et continuer à l'exécuter lorsque vous fermez la session

Je suis l'aide de Putty pour se connecter à un serveur distant. Ce que je veux savoir c'est si il existe un moyen pour écrire mes commandes et de leur permettre de continuer à fonctionner après que j'ai fermer la session avec du Mastic. La raison pour cela est que je ne veux pas garder à l'ordinateur tout le temps. Est-il possible de faire cela?.

Mise à jour avec la solution

Pour ma question, comme il est présenté la meilleure solution est d'utiliser l'une des commandes comme nohup, parce que vous n'avez pas à installer de logiciel supplémentaire. Mais si vous êtes dans le même problème, utilisez l'écran, de l'installer et de l'utiliser. Il est incroyable.

J'ai choisi la réponse de Norman Ramsey en tant que favori en raison de proposer plusieurs solutions à l'aide des commandes et l'écran. Mais s'il vous plaît vérifier les autres réponses spécialement celui de PEZ, alors vous obtenez un aperçu de ce que l'écran est capable todo.

90voto

PEZ Points 9662

l'écran! C'est la meilleure chose depuis le pain tranché. (Ouais, je sais que d'autres l'ont déjà suggéré, mais c'est tellement bon que tout le monde devrait s'unir et suggèrent aussi).

l'écran est comme, comme, ummmm ... comme l'utilisation de VNC ou le connecter à un GUI destop, mais pour commande shell windows. Vous pouvez avoir plusieurs shell "windows" ouvert à la fois dans la même session écran. Vous pouvez faire des trucs comme:

  1. Démarrer un des écrans de session à l'aide de l'écran "- dR" (habituez-vous à l'aide -dR)
    • exécuter certaines commandes dans une fenêtre
    • appuyez sur CTRL-A,C pour créer une nouvelle fenêtre ouvrir un fichier avec vim
    • appuyez sur CTRL-A,0 pour revenir à la première fenêtre et une commande sur le fichier que vous venez de modifier
    • CTRL-A, 1 pour revenir à votre session vim
    • CTRL-A, C pour encore une autre fenêtre et peut-être faire un "sudo su" (parce que vous venez d'arriver à besoin d'un shell root)
    • CTRL-A, 0 et de lancer un processus en arrière-plan
    • CTRL-A, C pour créer une nouvelle fenêtre, "tail-f" le journal pour que les processus d'arrière-plan
    • CTRL-A, d pour déconnecter votre écran, puis CTRL-D pour déconnecter du serveur
    • Partez en vacances pour trois semaines
    • Ouvrez une session sur le serveur et lancer des "screen-dR" pour vous connecter à votre session écran
    • vérifiez le journal dans la quatrième fenêtre avec CTRL-A, 3 (c'est comme si vous avez été là, à regarder tout le temps)
    • CTRL-A, 1 pour ramasser ce que vim session de nouveau
    • Je suppose que vous êtes de départ pour obtenir de l'image maintenant? =)

C'est comme de la magie. J'ai été à l'aide de l'écran pour plus longtemps que je me souvienne, et je suis encore totalement surpris par la façon sanglante, il est grand.

EDIT: je veux Juste mentionner il ya aussi maintenant tmux. Très semblable à l'écran, mais a des caractéristiques uniques, le fractionnement de la windows étant la plus importante.

31voto

Norman Ramsey Points 115730

nohup , disown , et screen sont tous bons mais screen est le meilleur car contrairement aux deux autres, screen vous permet de vous déconnecter du serveur distant, de tout laisser fonctionner, puis de vous reconnecter ultérieurement pour voir ce qui se passe. Avec nohup et disown vous ne pouvez pas reprendre l’interaction.

10voto

Carlos Rendon Points 2023

Essayez d’utiliser GNU Screen . Cela vous permet d'avoir plusieurs coquilles ouvertes à la fois. Et vous pouvez vous déconnecter de ces shells en cours d'exécution (c'est-à-dire fermer la session avec Putty) et ils continueront à faire leur travail.

9voto

Stephen Cox Points 523

Ce que vous cherchez, c'est nohup .

Voir le lien wiki pour savoir comment l'utiliser.

6voto

olarva Points 716

l'écran est le meilleur.

Essayer:

screen -dmS "MyTail" tail -f / var / log / syslog

Cette commande de démarrage en arrière-plan.

Utilisez screen -r pour lister et ou screen -r Mytail pour entrer en session.

Si plusieurs utilisateurs ont besoin d'accéder à la même session, utilisez: screen -rx MyTail, et les deux utilisateurs ou plus partagent la session.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X