284 votes

Puis-je interrompre/écraser un processus déjà lancé ?

Je fais des tests sur des scripts de migration de données à long terme, via SSH. Disons que je commence à exécuter un scripts vers 16h ; maintenant, 18h arrive, et je me maudis de ne pas avoir fait tout cela en screen .

Y a-t-il un moyen de "rétroactivement" nohup un processus, ou dois-je laisser mon ordinateur en ligne toute la nuit ? S'il n'est pas possible de joindre screen à/ nohup un processus que j'ai déjà commencé, alors pourquoi ? Quelque chose à voir avec la façon dont les processus parent/enfant interagissent ? (Je n'accepterai pas de réponse négative qui n'aborde pas au moins la question du "pourquoi" - désolé ;) )

6 votes

Je viens de voir un article de blog intéressant sur disown . blogs.oracle.com/ksplice/entry/disown_zombie_children_and_the

2voto

d9k Points 123

Vous pouvez rediriger la sortie du processus vers un fichier avec gdb.

https://blog-en.openalfa.com/how-to-detach-from-the-terminal-a-running-process-in-linux

et ensuite le renier

Mise à jour : J'ai dû exécuter gdb avec sudo et une commande gdb légèrement différente dans Ubuntu 18.04 :

p (int)dup2(open("/tmp/test.stdout", 1), 1)

1voto

Dmitry Gusev Points 111

Je voulais utiliser nohup (ou similaire) pour lancer le links et de s'y attacher après avoir téléchargé un fichier à partir d'un site Web ASP.NET avec un processus d'authentification compliqué et beaucoup d'états de vue cachés qui rendaient difficile l'utilisation du travail avec curl / wget .

J'ai fini par utiliser tmux ce qui a permis de résoudre le problème :

  1. Ejecutar tmux
  2. Exécutez votre application ( links dans mon cas) et laissez-le fonctionner
  3. Fermez la session SSH, l'application restera en cours d'exécution.
  4. Connectez-vous plus tard avec SSH à la même machine et exécutez tmux attach pour ramener l'application à l'écran

-1voto

Flotolk Points 2210

C'est parce que vous avez peur que la session soit interrompue ? Dans ce cas, vous pouvez appuyer sur Ctrl-z et interrompre le processus, puis mettre quelque chose pour maintenir la session en vie, comme un "ping -t localhost" ou "top".

Si c'est parce que vous voulez vous déconnecter, alors je crains de ne pas pouvoir ajouter aux autres commentaires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X