Maison >Opération et maintenance >exploitation et maintenance Linux >Comment tuer un processus sous Linux
SMX 1822 1 0 11:38? 00 :00:49 gnome-terminal
smx 1823 1822 0 11:38 ? ash
smx 1827 1 4 11 : 38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin
smx 1857 1822 0 11:38 pts/1 00:00:00 bash
smx 1880 1619 0 11:38 ? 00:00 ;
smx 1822 0,1 0,8 58484 18152 ? ty-helper
smx 1824 0.0 0.1 6820 3776 pts/0 ss 11:38 0:02 bash
smx 1827 4.3 5.8 398196 119568 sl 11:38 26:13 /usr/lib/firefox-3.6.18/firefox-bin
smx 1857 0,0 0,1 6688 3644 pts/1 ss 11:38 0:00 bash
Copiez le code Le code est le suivant :
$ kill -s 9 1827
où -s 9 précise que le signal transmis au processus est 9, c'est-à-dire forcé, dès que possible Terminez le processus. Voir l'annexe pour chaque signal de terminaison et ses fonctions.
1827 est le pid de Firefox trouvé par ps ci-dessus.
C'est simple, mais il y a un problème. S'il y a moins de processus, ce n'est pas grave. S'il y a trop de processus, ce sera douloureux, que ce soit ps -ef ou ps -aux, à chaque fois. pour trouver le processus à tuer dans une grande liste d'informations sur le processus, les progrès sont vertigineux.
Avancé :
Placez les résultats de la requête ps dans le pipeline vers grep pour trouver les processus contenant des chaînes spécifiques. Le caractère barre verticale "|" est utilisé pour séparer deux commandes. La sortie de la commande sur le côté gauche du caractère barre verticale sera utilisée comme entrée de la commande sur le côté droit du caractère barre verticale.
$ ps -ef | grep firefox
smx 12029 1824 0 21:54 pts/0 00:00:00 grep --color=auto firefox
C'est rafraîchissant cette fois. EnsuiteCopiez le code Le code est le suivant :
$kill -s 9 1827
Amélioration 2 - Utiliser pgrep :
Copier le code Le code est le suivant :
$ pgrep firefox
1827
Que voyez-vous ? C'est vrai, le pid de Firefox, il faut le retaper :
$kill -s 9 1827
Amélioration 3 - Utiliser pidof :
A quoi penses-tu quand tu vois pidof ? C'est vrai, pid of xx, traduit littéralement par le pid de xx.
Copier le code Le code est le suivant :
$ pidof firefox-bin
1827
Le léger inconvénient par rapport à pgrep est que pidof doit donner le nom complet du processus. Ensuite, il y a le cliché :
Que vous utilisiez ps puis trouvez lentement le processus pid, ou que vous utilisiez grep pour trouver le processus contenant le chaîne correspondante, ou utilisez pgrep pour trouver directement le processus contenant Il est un peu gênant de saisir le pid de processus de la chaîne correspondante, puis de le saisir manuellement pour tuer pour tuer. Existe-t-il un moyen plus pratique ? avoir!
Copier le code Le code est le suivant :
$ps -ef | grep -v grep | cut -c 9-15 |
La sortie de "grep firefox" correspond à tous les processus contenant le mot-clé "firefox".
"grep -v grep" consiste à supprimer le processus contenant le mot-clé "grep" des processus répertoriés.
"cut -c 9-15" intercepte les 9ème au 15ème caractères de la ligne d'entrée, qui se trouve être le numéro de processus pid.
La commande xargs dans "xargs kill -s 9" est utilisée pour utiliser le résultat de sortie (pid) de la commande précédente comme paramètre de la commande "kill -s 9" et exécuter la commande. "kill -s 9" tuera de force le processus spécifié.
Tu ne veux pas te plaindre de quelque chose ? Oui, c'est trop long
Amélioration 5 :
Vous connaissez les commandes pgrep et pidof, pourquoi avez-vous besoin de taper une liste si longue !
Copier le code Le code est le suivant :
$ pgrep firefox |
Amélioration 7 :
Dois-je appeler xargs à chaque fois pour passer le pid pour tuer ? La réponse est non :
Copiez le code Le code est le suivant :
Copier le code Le code est le suivant :
$kill -s 9 `pgrep firefox`
Amélioration 9 - pkill :
À quoi as-tu pensé quand tu as vu pkill ? C'est vrai, pgrep et kill ! pkill=pgrep+kill.
Copier le code Le code est le suivant :
$pkill -9 firefox
Explication : "-9" signifie que le signal envoyé est 9. La différence entre pkill et kill sur ce point est : pkill n'a pas besoin "s" pour terminer le niveau du signal Suivre directement après "-". J'ai toujours pensé que c'était "-s 9" auparavant, mais le processus ne parvenait pas à se terminer à chaque fois que je l'exécutais.
Amélioration 10 - killall :
killall est similaire à pkill, mais si le nom du processus donné est incomplet, killall signalera une erreur. pkill ou pgrep peuvent terminer un processus simplement en donnant une partie du nom du processus.
Copiez le code Le code est le suivant :
$killall -9 firefox
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!