CTRL+Cenverra SIGINT
à l'application. L'application peut configurer un gestionnaire pour ce signal ou ignorer le signal. Par défaut, il n'y a pas de gestionnaire et SIGINT
tuera l'application.
Vous pouvez utiliser CTRL+\qui enverra SIGQUIT
. Cela générera également un vidage de mémoire si la limite de mémoire n'est pas nulle.
Vous pouvez suspendre le processus et revenir au shell avec CTRL+Z, cela arrêtera l'exécution du processus et reviendra à l'invite du shell. Le processus sera en mémoire et sera disponible en tant que travail dans le shell actuel. Vous pouvez ensuite utiliser kill -SIGNAL %%
ou kill -SIGNAL %<job_ID>
pour envoyer un signal à ce travail. Par exemple pour tuer la dernière utilisation du travailkill -9 %%
Si aucun d'entre eux ne fonctionne, vous pouvez toujours envoyer SIGTERM
, en dernier recours, SIGKILL
ce qui mettra fin à tout processus. Ce signal, comme tout autre signal, doit être envoyé en tant que même utilisateur que le processus que vous essayez d'arrêter ou en tant que root. Pour envoyer SIGKILL
au processus, recherchez d'abord le processus avec ps aux
ou ps -edf
, puis exécutez kill -SIGKILL <process_ID>
, où <process_ID>
est la PID
colonne en ps
sortie.
Les signaux ne peuvent pas être délivrés si le processus est dans un appel ininterrompu. Les appels sans interruption sont des fonctions du noyau qui ne peuvent pas être arrêtées et se produisent généralement à cause d'un mauvais pilote (par exemple un pilote qui n'est pas réentrant ). Un processus en veille sans interruption ne peut pas être arrêté tant que l'appel n'est pas terminé ou que le serveur n'est pas redémarré.
Si un processus devient un zombie , il n'utilisera aucune ressource prenant seulement de l'espace dans la table de processus. Un processus zombie ne peut pas recevoir de signaux.
La liste des signaux pour l'architecture actuelle peut être trouvée avec kill -l
Voir les pages de manuel de kill
, ps
et bash
. Pour voir une page de manuel, utilisez quelque chose comme:man ps