12
$ ps aux | grep -i ssh
USER      4364  0.0  0.0   9004  1032 ?        Ss   12:20   0:00 ssh -v -fND localhost:4000 USERNAME@SERVER-IP-ADDRESS

$ pgrep localhost:4000

Why doesn't this work?

Caleb
  • 70,105
LanceBaynes
  • 40,135
  • 97
  • 255
  • 351

2 Answers2

25

By default, pgrep(1) will only match against the process name. If you want to match against the full command line, use the -f option:

$ pgrep -f localhost:4000
camh
  • 39,069
8

Have a look at the man page for pgrep. It is not just an alias for running ps with a bunch of columns and then greping the text output. It actually searches specific fields for values. By default, it only looks at the process name when doing a search and returns the PID. You can search the full command line by adding the -f option. You can also search several other fields that might be useful such as matching the terminal where a process is running or the group id.

Caleb
  • 70,105