En utilisant la commande "ucbps", je peux obtenir tous les PID
$ ucbps
Userid PID CPU % Mem % FD Used Server Port
=========================================================================
512 5783 2.50 16.30 350 managed1_adrrtwls02 61001
512 8896 2.70 21.10 393 admin_adrrtwls02 61000
512 9053 2.70 17.10 351 managed2_adrrtwls02 61002
Je veux le faire comme ça, mais je ne sais pas comment faire
Si vous voulez tuer -9 en vous basant sur une chaîne (vous devriez peut-être essayer de tuer en premier), vous pouvez faire quelque chose comme ça:
ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}'
Cela vous montrera ce que vous êtes sur le point de tuer (très, très important) et le transmettra à sh
quand le moment sera venu d’exécuter:
ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}' | sh
pids=$(pgrep <name>)
vous obtiendrez les pids de tous les processus avec le nom donné. Pour tous les tuer, utilisez
kill -9 $pids
Pour éviter d'utiliser une variable et tuer directement tous les processus avec un problème de nom donné
pkill -9 <name>
Sur une seule ligne ...
pgrep -f process_name | xargs kill -9
Une autre possibilité serait d’utiliser pidof
qui est généralement fourni avec la plupart des distributions. Il vous renverra le PID d'un processus donné en utilisant son nom.
pidof process_name
De cette façon, vous pouvez stocker ces informations dans une variable et y exécuter kill -9
.
#!/bin/bash
pid=`pidof process_name`
kill -9 $pid
utilisez grep [n] ame pour supprimer ce nom de grep -v ceci est le premier ... Sec en utilisant xargs de la façon dont il est incorrect de rnu quoi que vous le fassiez, il faut utiliser -i peut avoir des problèmes avec la commande.
ps axf | grep | grep -v grep | awk '{print "kill -9" $ 1}'? ps aux | grep [n] ame | awk '{print "kill -9" $ 2}'? n'est-ce pas mieux?