Comment tuer des processus dans Ubuntu?

129

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

J'ai des processus smbd tournants que j'ai provoqués à partir de ma machine Windows et je me suis connecté au serveur Linux et je veux éliminer ces processus en rotation. Je ne suis pas autorisé à redémarrer les services ou à redémarrer l'ordinateur.

    
posée djangofan 17.02.2012 - 00:49
la source

13 réponses

156

Pour tuer tous les processus que vous avez l’autorisation de tuer, lancez simplement la commande

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

Pour tuer un processus spécifique, disons firefox, lancez simplement

pkill firefox ou killall firefox selon le comportement souhaité: la différence entre 'killall' et 'pkill'?

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

ps -ef

Si vous voulez rechercher tous les processus par l’utilisateur bob, cela pourrait vous aider

pgrep -l -u bob

ou

ps -ef | grep bob
    
réponse donnée ste_kwr 17.02.2012 - 00:58
la source
46

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

    
réponse donnée Chris Wayne 17.02.2012 - 00:50
la source
19

Essayons quelque chose de plus:

sudo apt-get install htop 

La commande top est la méthode traditionnelle pour afficher l'utilisation des ressources de votre système et voir les processus qui utilisent le plus de ressources système. Top affiche une liste de processus, avec ceux qui utilisent le plus de CPU en haut.

htop affiche les mêmes informations avec une présentation 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 leur suppression ou leur modification, avec les clés F .

    
réponse donnée Fantomas 12.01.2014 - 05:41
la source
14

Vous pouvez utiliser

ps -ax | grep application name 

Si vous recherchez le type de Firefox dans le terminal comme ps -ax | grep firefox , il affiche l'ID de processus de l'application correspondante. Vous pouvez arrêter cette application avec la commande kill si le processus id = 1317,

kill -9 1317
    
réponse donnée Xman Classical 22.07.2014 - 08:21
la source
12

J'utiliserais xkill . Entrez 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.

    
réponse donnée Alvar 27.12.2013 - 22:36
la source
7

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

pkill -U username
    
réponse donnée user129146 07.02.2013 - 03:30
la source
5

Je diviserais votre problème en deux parties:

1) Comment trouver les processus lancés par moi? Exécutez ceci:

ps -u 'whoami'

Le whoami 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 pouvant être supprimés par votre compte.

2) La commande ps répertorie le numéro de processus, le TTY, l’heure et le CMD. L'ID de processus est la première colonne. Utilisez ce numéro pour tuer le processus. Soyez prudent lorsque vous tuez le processus. Vous pourriez casser quelque chose si vous tuez le mauvais processus. Pour tuer un processus, vous utiliserez la commande kill , 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; envoyer un -2 équivaut à appuyer sur Control + C sur ce processus; -9 obligera le noyau à abandonner le processus sans le communiquer au processus.

En supposant que ps -u whoami ait renvoyé 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 vous vouliez tuer le processus firefox par son identifiant de processus, vous feriez alors:

kill -1 7667

Ensuite, vous réexécutez la même commande ps et vérifiez si le processus était toujours en cours d'exécution. S'il est toujours en cours d'exécution, faites une

kill -2 7667

vous frayez un chemin jusqu'à -9 .

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

Si vous connaissez le nom du processus, vous pouvez simplement aller killall <processname> , où est ce que vous essayez de tuer. Par exemple: killall fish (le poisson, en ce sens, est le shell interactif convivial).

La documentation de killall peut être trouvée ici: lien

    
réponse donnée Alexandre Santos 05.05.2015 - 01:37
la source
2

... Tous les processus sous Linux répondent aux signaux. Les signaux sont une méthode de niveau os 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 est d'utiliser la commande kill.

Comme vous vous en doutez, la fonctionnalité par défaut de cet utilitaire consiste à tenter de tuer un processus:

kill PID_of_target_process

Cela envoie le signal TERM au processus. Le signal TERM indique au processus de se terminer s'il vous plaît. Cela permet au programme d'effectuer des opérations de nettoyage et de sortir en douceur.

Si le programme ne se comporte pas correctement et ne se ferme pas avec le signal TERM, nous pouvons escalader le signal en passant le signal KILL:

kill -KILL PID_of_target_process

Ceci est 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 ferme le processus. Ceci est utilisé pour contourner les programmes qui ignorent les signaux qui leur sont envoyés ...

    
réponse donnée jackal404258 03.05.2015 - 02:00
la source
2

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 cela fonctionnait autant que ça, ça ne marchait pas le lendemain parce que le pid avait une longueur différente et que la quantité d’espaces était différente

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

pgrep -l -u justin

qui produit des processus dans le 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" "'

Qu'est-ce que cela fait est que tous les processus justin est en cours d'exécution (qui peut être changé en n'importe quel nom d'utilisateur) en grep qui recherche skype (cela peut être modifié pour votre processus), puis les canaux line to cut qui ne lit alors que le PID et utilise finalement ce PID dans la commande kill pour le tuer.

    
réponse donnée justingiffard 27.12.2013 - 22:10
la source
2

Avec cette application, vous pouvez voir 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

    
réponse donnée Reza Bojnordi 27.05.2017 - 14:21
la source
0

J'ai utilisé la procédure suivante pour tuer un processus dans Ubuntu ::

Étape 1: Obtenez le pid du processus en utilisant grep ou vous pouvez utiliser -C aussi ::

ps aux | -C 'filename'

ou

ps -ef | -C 'filename'

ou

ps aux | grep 'filename'

ou

ps -ef | grep 'filename' 

Étape 2: Notez le numéro de pid.

Etape 3: Utilisez la commande 'kill' avec le numéro de pid comme suit:

kill pidnumber
    
réponse donnée harrypotter0 27.05.2017 - 13:46
la source
0

Ctrl + Alt + Suppr peut être défini pour vous donner accès au gestionnaire de tâches, à partir duquel il est facile de tuer des processus en quelques clics. Pour moi, moins besoin de mémoriser les commandes qui pourraient être dommageables si elles sont mal faites: / p>

lien

    
réponse donnée Cedric Eveleigh 27.05.2017 - 13:52
la source
0

Voici un script python simple que j'ai écrit, killProcess.py, qui acceptera tout comme une entrée et le tuera.

J'ai écrit ce script car j'ai beaucoup de processus python ou node à supprimer individuellement et par programme. Je ne peux pas utiliser "killall python" car il va arrêter les processus que je dois continuer à exécuter.

Veuillez nommer le fichier "killProcess.py", puis ajoutez le nom du script que vous souhaitez arrêter. Par exemple: python killProcess.py runnablePoller.py va tuer le fichier runnablePoller.py

import os;
import sys;
for arg in sys.argv:
    if(arg!="killProcess.py"):
        process=arg;
        print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
    try:
        pid=int(p);
        print(pid); 
        break;
    except:
        continue;

os.system("kill "+str(pid));
    
réponse donnée nick carraway 18.06.2017 - 21:39
la source

Lire d'autres questions sur les étiquettes