web-dev-qa-db-fra.com

Comment obtenir le PID du processus en spécifiant le nom du processus et le stocker dans une variable à utiliser ultérieurement?

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

  1. variable = obtenir le pid du processus par le nom du processus.
  2. Ensuite, utilisez cette commande kill -9 variable.
44
Nidhi

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
79
Ben
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>
62
XZS

Sur une seule ligne ...

pgrep -f process_name | xargs kill -9
19
Stephen

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
11
flazzarini

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?

0
Pawel K