Équivalent de CTRL C in commande pour annuler un programme

J'exécute un programme long sur une machine distante, et je veux l'arrêter, mais mon problème est que si j'utilise la commande kill, le programme se terminera sans enregistrer les résultats. Normalement, ce que je fais pour terminer le programme utilise ctrl c et dans ce cas, le programme enregistre les résultats, mais en ce moment je ne suis pas dans la machine qui exécute la session, donc je ne peux pas faire ctrl C.

Ma question est: est-il possible de le faire à distance l'équivalent de ctrl-c?.

57
demandé sur Eduardo 2009-02-05 09:14:16

5 réponses

Essayez:

kill -SIGINT processPIDHere

Fondamentalement Ctrl C envoie le signal SIGINT (interruption) tandis que kill envoie le signal SIGTERM (terminaison) par défaut sauf si vous spécifiez le signal à envoyer.

86
répondu Firas Assaad 2016-10-07 08:13:30

Ctrl C envoie juste un signal SIGINT, mais il y a d'autres signaux qui sont un peu plus doux. http://www.gnu.org/software/libtool/manual/libc/Termination-Signals.html

Je pense que vous pouvez utiliser la commande the kill pour envoyer un autre signal. (voir Man kill pour plus d'informations)

6
répondu Johan 2014-07-24 12:33:47

Si vous contrôlez le processus distant de longue durée, vous pouvez installer un gestionnaire de signal pour SIGTERM (voir man signal et man sigaction et les nombreuses questions SO sur ce sujet), pour nettoyer bien avant de mourir.

C'est une chose très courante à faire.

4
répondu dmckee 2009-02-05 14:57:46

Voici un exemple pour mongod

Pour démarrer le démon à partir de la ligne de commande: mongod &

Puis plus tard kill -SIGINT `pgrep mongod`

1
répondu Michael Cole 2018-03-26 22:36:58

Gardez à l'esprit aussi bien dans votre gestionnaire de signal, que c'est comme un gestionnaire d'interruption dans que vous êtes très limité à ce que vous êtes autorisé à faire sans endommager le reste de votre programme. La meilleure chose que vous pouvez faire ici est de définir une variable atomic_t "should_quit".

0
répondu Paul Betts 2009-02-05 15:02:38