
Ich habe in einer Online-Karteikarte gelesen, dass der Befehl lautet:
pkill -u bob $(pgrep -u bob)
Ich glaube jedoch, dass das falsch ist. Ich glaube, es besagt:
Töte alle verarbeiteten im Besitz von
bob
, und4572\n4600
Weil:
[bob@localhost ~]$ pgrep -u bob
4572
4600
Außerdem wird ein Fehler ausgegeben:
[bob@localhost ~]$ pkill -u bob $(pgrep -u bob)
pkill: only one pattern can be provided
Try `pkill --help' for more information.
Das ist sinnvoll, da Benutzernamen keine Zeilenumbrüche enthalten dürfen, oder?
Ich denke, der Befehl sollte nur lauten:
pkill -u bob
Um „alle Prozesse zu beenden, die Bob gehören“
Während der Befehl:
pgreg -u bob
Gibt „alle Prozesse im Besitz von Bob“ zurück.
Ich frage mich:
- Verwende ich die richtigen Befehle wie vorgesehen?
- Ist meine Analyse des falschen Weges zutreffend?
Antwort1
Du hast Recht
Falsch: pkill -u bob $(pgrep -u bob)
Richtig:pkill -u bob
Die Karteikarte sollte wahrscheinlich Folgendes zeigen:
kill $(pgrep -u bob)
wodurch alle von zurückgegebenen Prozesse beendet würden pgrep -u bob
.