Comment puis-je tuer des processus dans Ubuntu?

Comment puis-je tuer tous les processus exécutés par mon propre compte non root?

J'ai des processus smbd en rotation que j'ai provoqués à partir de ma machine Windows et je me suis donc connecté au serveur Linux et je veux tuer ces processus en rotation. Je n'ai pas le pouvoir de redémarrer les services ou de redémarrer la machine.

Pour tuer tous les processus que vous avez l'autorisation de tuer, exécutez simplement la commande

kill -15 -1 ou kill -9 -1 en fonction du comportement souhaité (utilisation man kill pour plus de détails)

Pour tuer un processus spécifique, disons firefox, exécutez simplement

pkill firefox ou killall firefox en fonction du comportement que vous souhaitez: Quelle est la différence entre & # 39; killall' et & #39;pkill & #39;?

Si vous voulez voir quels processus sont en cours d'exécution, utilisez la commande

ps -ef

Si vous souhaitez rechercher tous les processus par nom d'utilisateur, cela peut vous aider

pgrep -l -u bob

ou

ps -ef | grep bob

Utiliser sudo kill <pid> ou sudo killall <process-name>

Vous pouvez utiliser

ps -ax | grep application name 

Si vous recherchez firefox, tapez terminal comme ps -ax | grep firefox, il montre l'ID de processus de l'application correspondante. Vous pouvez arrêter cette application en kill commande si id de processus=1317,

kill -9 1317

Essayons quelque chose de plus:

sudo apt-get install htop 

Le top la commande est le moyen traditionnel de visualiser l'utilisation des ressources de votre système et de voir les processus qui consomment le plus de ressources système. Top affiche une liste des processus, avec ceux qui utilisent le plus de CPU en haut.

htop affiche les mêmes informations avec une mise en page plus facile à comprendre. Il vous permet également de sélectionner des processus avec les touches fléchées et d'effectuer des actions, telles que les tuer ou changer leur priorité, avec le F touches.

J'utiliserais xkill. Entrer xkill dans un terminal et cliquez dans la fenêtre, ou entrez xkill et l'ID de processus et il sera terminé.

En savoir plus sur xkill sur x.org.

Pour essayer de tuer tous les processus appartenant à un utilisateur username, exécuter:

pkill -U username

Je diviserais votre problème en 2 parties:

1) Comment puis-je trouver les processus que j'ai démarrés? Exécutez ceci:

ps -u `whoami`

Le whoami c'est juste au cas où vous ne connaissez pas le nom du compte que vous utilisez, sinon tapez simplement le nom du compte sans les guillemets.

Cela listera tous les processus qui peuvent être supprimés par votre compte.

2) Le ps la commande listera le numéro de processus, l'ATS, l'heure et le CMD. L'ID de processus est la première colonne. Utilisez ce nombre pour tuer le processus. Soyez prudent tout en tuant le processus. Vous pourriez casser quelque chose si vous tuez le mauvais process.To tuer un processus que vous utiliserez kill commande, qui envoie un SIGNAL au processus. Le signal indique ce que le processus devrait faire. Par exemple, l'envoi d'un -1 au processus lui demandera de recharger le fichier de configuration; envoi d'un -2 est équivalent à appuyer sur Ctrl + C sur ce processus; -9 entraînera l'abandon du processus par le noyau, sans le communiquer au processus.

En supposant que ps-u whoami retourné quelque chose comme

  PID TTY          TIME CMD 4333 pts/1    00:00:00 fish 4335 ?        00:00:00 fishd 4816 ?        00:00:00 intellij 4868 ?        00:50:42 java 4939 ?        00:00:19 fsnotifier64 7667 ?        02:49:08 firefox 7698 ?        00:00:00 unity-webapps-s

Et tu voulais tuer le firefox processus par son identifiant de processus, alors vous feriez:

kill -1 7667

Ensuite, vous réexécutriez la même chose ps commandez et vérifiez si le processus était toujours en cours d'exécution. S'il est toujours en cours d'exécution, effectuez un

kill -2 7667

travailler votre chemin jusqu'à -9.

Pour tuer tous les processus démarrés par votre compte, entrez kill <level> -1. Comme avant: travaillez votre chemin jusqu'à -9.

Si vous connaissez le nom du processus, vous pouvez simplement y aller killall <processname>, où est ce que vous essayez de tuer. Exemple: killall fish (le poisson, en ce sens, est la coquille interactive amicale).

Documentation pour killall peut être trouvé ici: http://manpages.ubuntu.com/manpages/hardy/man1/killall.1.html

Avec cette application, vous pouvez afficher les listes de programmes

installer htop

sudo apt-get install htop

pour voir le processus et tuer le processus, vous pouvez l'installer et simplement supprimer

enter image description here

J'ai écrit un petit script que j'ai écrit pour tuer (dans mon cas) Skype:

kill -s 9 `ps aux | grep skype | head -n 1 | cut -f4 -d" "`

Mais j'ai trouvé que même si cela fonctionnait à l'époque, cela ne fonctionnait pas le lendemain car le pid était d'une longueur différente et là pour la quantité d'espaces était différent

Ensuite, je suis tombé sur ce site et j'ai essayé

pgrep -l -u justin

qui génère commodément des processus au format

[pid] [name]

J'ai donc ajusté mon code dans le script à ceci:

kill -s 9 `pgrep -l -u justin | grep skype | cut -f1 -d" "`

Cela conduit à tous les processus justin est en cours d'exécution (qui peut être changé en n'importe quel nom d'utilisateur) pour grep qui cherche skype (cela peut être changé en votre processus), puis acheminez cette ligne vers cut qui lit ensuite uniquement le PID et utilise finalement ce PID dans le kill commande de le tuer.

...Tous les processus sous Linux répondent aux signaux. Les signaux sont un moyen au niveau du système d'exploitation de dire aux programmes de mettre fin ou de modifier leur comportement.

Comment Envoyer des Signaux de Processus par PID

La manière la plus courante de transmettre des signaux à un programme consiste à utiliser la commande kill.

Comme vous pouvez vous y attendre, la fonctionnalité par défaut de cet utilitaire est de tenter de tuer un processus:

kill PID_of_target_process

Ceci envoie le signal de TERME au processus. Le signal TERM indique au processus de se terminer. Cela permet au programme d'effectuer des opérations de nettoyage et de quitter en douceur.

Si le programme se comporte mal et ne se ferme pas lorsqu'on lui donne le signal TERM, nous pouvons escalader le signal en passant le signal KILL:

kill -KILL PID_of_target_process

Il s'agit d'un signal spécial qui n'est pas envoyé au programme.

Au lieu de cela, il est donné au noyau du système d'exploitation, qui arrête le processus. Ceci est utilisé pour contourner les programmes qui ignorent les signaux qui leur sont envoyés...