it-swarm.com.de

Wie erhalte ich die PID des Prozesses, indem Sie den Prozessnamen angeben und in einer Variablen speichern, um sie weiter verwenden zu können?

Mit dem Befehl "ucbps" kann ich alle PIDs abrufen

 $ 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

Ich möchte es so machen, weiß aber nicht wie

  1. variable = PID des Prozesses nach Prozessnamen abrufen.
  2. Verwenden Sie dann diesen Befehl kill -9 Variable.
44
Nidhi

Wenn Sie -9 basierend auf einer Zeichenfolge töten möchten (möglicherweise sollten Sie zuerst kill versuchen), können Sie Folgendes tun:

ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}'

Dies zeigt dir, was du töten willst (sehr, sehr wichtig) und leite es einfach an sh, wenn die Zeit zum Ausführen kommt:

ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}' | sh
79
Ben
pids=$(pgrep <name>)

erhalten Sie die Pids aller Prozesse mit dem angegebenen Namen. Um sie alle zu töten, verwenden Sie

kill -9 $pids

Um die Verwendung einer Variablen zu unterlassen und alle Prozesse mit einem gegebenen Namensproblem direkt zu beenden

pkill -9 <name>
62
XZS

In einer einzigen Zeile ...

pgrep -f process_name | xargs kill -9
19
Stephen

Eine andere Möglichkeit wäre die Verwendung von pidof, die normalerweise in den meisten Distributionen enthalten ist. Es wird Ihnen die PID eines bestimmten Prozesses unter Verwendung seines Namens zurückgegeben.

pidof process_name

Auf diese Weise könnten Sie diese Informationen in einer Variablen speichern und kill -9 darauf ausführen.

#!/bin/bash
pid=`pidof process_name`
kill -9 $pid
11
flazzarini

verwenden Sie grep [n] ame, um diesen grep -v-Namen zu entfernen. Dies ist der erste ... Sek. Wenn Sie xargs so verwenden, wie es ist, ist es falsch, das zu löschen, was auch immer es ist, Sie müssen -i (interaktiver Modus) verwenden, andernfalls müssen Sie kann Probleme mit dem Befehl haben.

ps axf | grep | grep -v grep | awk '{print "kill -9" $ 1} "? ps aux | grep [n] ame | awk '{print "kill -9" $ 2} "? ist das nicht besser?

0
Pawel K