Question Comment est-ce que je tue des processus dans Ubuntu?


Comment est-ce que je tue tous les processus fonctionnant 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 donc connecté au serveur Linux pour supprimer ces processus. Je n'ai pas le droit de redémarrer les services ou de redémarrer la machine.


129
2018-02-16 23:49


origine




Réponses:


Pour tuer tous les processus que vous avez la permission 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, lancez simplement

pkill firefox ou killall firefox en fonction du comportement que vous souhaitez: Quelle est 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 souhaitez rechercher tous les processus par l’utilisateur bob, cela pourrait vous aider.

pgrep -l -u bob

ou

ps -ef | grep bob

156
2018-02-16 23:58



Je commencerais par kill -15 -1, et seulement passer à kill -9 -1 s'il y a des processus tenaces et Je sais ce que je fais. Tuer au hasard des processus pouvant être en cours de transaction d’une base de données n’est pas quelque chose que l’on devrait faire avec désinvolture. - Simon Richter
En outre, le processus de Firefox est nommé firefox-bin. - Simon Richter
Non, vous pouvez essayer de courir killall firefox et killall firefox-bin et voir ce qui fonctionne. Je suis d'accord avec votre premier commentaire. - ste_kwr
Merci @ste_kwr, a travaillé avec vos instructions, après avoir lutté pendant deux jours ... - Java.beginner
L'avantage de ne pas avoir besoin de PID réside dans les tâches cron. Utiliser des noms fonctionne proprement. - SDsolar


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


46
2018-02-16 23:50



Je ne pense pas que cela soit pertinent pour cette question, vous utilisez sudo - l'OP n'a pas de tels privilèges, comme mentionné dans la question. - pl1nk
Le PO n'a pas de privilèges, veuillez modifier votre réponse ou il peut être supprimé ou converti en un commentaire comme "pas une réponse". - ish
S'il n'a pas de privilèges, il lui suffit de tuer <pid> ou killall <nom-processus>. Je l'ai juste utilisé dans mon compte non root, je ne serais pas capable de le faire s'il n'y avait pas cette réponse. . - Shailyn Ortiz


Essayons quelque chose de plus:

sudo apt-get install htop 

le top La commande est la manière traditionnelle d’afficher l’utilisation des ressources de votre système et de 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 les tuer ou modifier leur priorité, avec F clés.


19
2018-01-12 04:41



Extrêmement utile. Merci - W.Dodge


Vous pouvez utiliser

ps -ax | grep application name 

Si votre recherche de type 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 en kill commande si id processus = 1317,

kill -9 1317

14
2017-07-22 06:21





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. 


12
2017-12-27 21:36



Utilisez le second en fréquence après que pkill l'aime. +1 - Sergiy Kolodyazhnyy
xkill ne fonctionne pas dans ce cas ... - PythoNic
@PythoNic dans quel cas est-ce? - Alvar
Il veut tuer un processus non-fenêtre qui n'est pas non plus lié au serveur X comme il me semble ... (un bon outil) - PythoNic


Essayer de tuer tous les processus appartenant à un utilisateur username, courir:

pkill -U username

7
2018-02-07 02:30





Je diviserais votre problème en 2 parties:

1) Comment trouver les processus lancés par moi? Lance ça:

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 répertoriera tous les processus pouvant être supprimés par votre compte.

2) le ps commande listera le numéro de processus, le TTY, le temps 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 le kill commande, qui envoie un signal au processus. Le signal indique ce que le processus devrait faire. Par exemple, envoyer un -1 au processus lui demandera de recharger le fichier de configuration; envoyer un -2 équivaut à appuyer sur Ctrl + C sur ce processus; -9 obligera le noyau à abandonner le processus sans le communiquer au processus.

En supposant que ps -u whoami a 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écutez le même ps commande et vérifie si le processus était toujours en cours d'exécution. S'il est encore en cours d'exécution, faites une

kill -2 7667

travailler jusqu'à -9.

Pour tuer tous les processus démarrés par votre compte, entrez kill <level> -1. Comme 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 la coque interactive interactive).

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


5
2018-05-04 23:37





... Tous les processus sous Linux répondent aux signaux. Les signaux sont une manière 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 quitte pas lorsque le signal TERM est donné, nous pouvons augmenter le signal en passant le signal KILL:

kill -KILL PID_of_target_process

C'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 ...


2
2018-05-03 00:00





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 constaté 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 commodément les 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 tous les processus de tuyaux justin est en cours d'exécution (qui peut être modifié en n'importe quel nom d'utilisateur) pour grep qui cherche skype (cela peut être modifié pour votre processus), puis achemine cette ligne vers cut qui lit alors seulement le PID et utilise finalement ce PID dans le kill commande pour le tuer.


2
2017-12-27 21:10



Vous auriez pu laisser tomber le -l, et a couru pgrep -u justin skypeet tuer: pkill -u justin skype (ou pkill -KILL -u justin skype envoyer SIGKILL). - muru
C'est définitivement la manière Unix. Bravo à vous deux. Je vais utiliser celui-ci. - SDsolar