8

I read in an online flash card that the command is:

pkill -u bob $(pgrep -u bob)

However, I think this is wrong. I think it's saying:

Kill all the processed owned by bob, and 4572\n4600

Because:

[bob@localhost ~]$ pgrep -u bob
4572
4600

Also, it gives an error:

[bob@localhost ~]$ pkill -u bob $(pgrep -u bob)
pkill: only one pattern can be provided
Try `pkill --help' for more information.

Which makes sense because you can't have newlines in usernames, right?

I think the command should only be:

pkill -u bob

To "kill all processes owned by bob"

While the command:

pgreg -u bob 

Gives "all processes owned by bob"

I'm wondering:

  • Am I uses the right commands as intended?
  • Is my analysis of the incorrect way accurate?
mbigras
  • 3,100

1 Answers1

18

You Are Correct

Wrong: pkill -u bob $(pgrep -u bob)

Correct: pkill -u bob


The flash card probably meant to show:

kill $(pgrep -u bob)

which would kill all of the processes returned by pgrep -u bob.