Ctrl + c ne va pas tuer le process

J'ai cherché des réponses et, jusqu'à présent, je n'ai rien trouvé pour répondre à ma question. Je me connecte actuellement à mon server Ubuntu et lors de l'exécution d'un process, je ne peux pas exécuter les interruptions dessus. Voici mon stty-a:

user@Ubuntu1:~$ stty -a speed 38400 baud; rows 93; columns 200; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; 

Je n'ai rien dans mon .bashrc qui change les interruptions.

C'est la même chose pour tous les users, y compris root. J'ai également essayé de se connecter à partir de différents endroits en utilisant différents terminaux et à chaque fois que ce même résultat apparaît. J'ai utilisé ssh et ssh -X pour me connecter.

Edit: localement toutes mes interruptions fonctionnent bien.

Mise à jour: Je cherche toujours une réponse. Mon ami a exactement le même problème. Le problème semble être que lors de la connection (à partir de PC, Mac, Linux) le keyboard ne ramasse pas ces keys (même si correctement mappé).

Voici un truc hardcore:

 Control-Z 

il va suspendre votre process et il vous restituera l'ID du travail de ce process

Alors:

 kill -9 %1 

(remplacez 1 par votre identifiant de travail).

Note: Le pourcentage est obligatoire! Sinon, vous allez tuer votre process d'initialisation, ce qui signifie que vous allez tuer le kernel et que tout le système va se bloquer (ne mettez donc pas l'espace entre 🙂

ctrl + c ne tue jamais un programme,

Ce n'est pas ce que ça fait.

Il existe un set de signaux définis par le standard POSIX, utilisés pour contrôler un programme en cours d'exécution.

  First the signals described in the original POSIX.1-1990 standard. Signal Value Action Comment ────────────────────────────────────────────────────────────────────── SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process SIGINT 2 Term Interrupt from keyboard SIGQUIT 3 Core Quit from keyboard SIGILL 4 Core Illegal Instruction SIGABRT 6 Core Abort signal from abort(3) SIGFPE 8 Core Floating point exception SIGKILL 9 Term Kill signal SIGSEGV 11 Core Invalid memory reference SIGPIPE 13 Term Broken pipe: write to pipe with no SIGTERM 15 Term Termination signal 

http://man7.org/linux/man-pages/man7/signal.7.html

ctrl + c envoie le signal 2 , "Interruption du keyboard" au programme exécuté à partir d'un terminal.

C'est entièrement au programme de gérer ce signal, il peut faire ce qu'il veut à ce sujet. De nombreux interpréteurs de langage de script peuvent gérer cela par défaut en tuant le script appelé et en sortant avec grâce.

Si vous voulez quitter un programme, particulièrement dans un context automatique, singal 15 est recommandé, le programme kill peut être utilisé pour envoyer des signaux à un process par id (pid).

 kill -15 <pid> 

Pour autant que je sache, le programme reçoit toujours ce signal lui-même, et devrait se terminer aussi vite que possible.

Si le programme ignore le signal 15 cependant, et le programme persiste à vivre (et vous ne manquez pas d'envoyer le signal en raison d'une erreur de permission)

 kill -9 <pid> 

Le signal 9, à ma connaissance, est interprété par le kernel (le gestionnaire de tâches et l'interface matérielle). Le kernel arrête brusquement de traiter le programme et désaffecte / libère toutes ses ressources.

Ctrl + c ne va pas tuer le process. il arrêtera juste le process courant en cours au milieu. Pour tuer le process, nous devons utiliser la command "KILL"

Je suis tombé sur cet ancien post sur ce sujet particulier. Il semble que la séquence d'interruptions par défaut puisse être remplacée quelque part dans un file de configuration séparé.

Si vous cherchez seulement à tuer ce process à l'extérieur, vous pouvez utiliser tuer juste attention que vous devriez escalader tuer comme décrit dans cet article sur les process de tuer , plutôt que de sauter à la mort la plus extrême -9.

Wikipedia est une excellente ressource pour le programme kill . Voici également une list des signaux Unix et ce qu'ils font.