pgrep
/ pkill
are the best tools to use in this case, instead of ps
:
pgrep -x event-ws # match by executable filename 'event-ws'; print PID
pkill -x event-ws # match and kill
Each command matches process(es) whose executable filename is event-ws
exactly (-x
) (irrespective of whether a directory path prefix was used when the executable was launched).
Note, however, that your pgrep
/ pkill
implementation may limit the name to 15 characters - both when matching and in its output.
pgrep
simply prints the matching PID(s) (process ID(s)), whereas pkill
kills the matching process(es).
If, by contrast, you need to match by a part of the full command line, use the -f
option with a regular expression:
pgrep -f '/event-ws/' # match by part of the full command line; print PID and name
pkill -f '/event-ws/' # match and kill
If you add -l
to the pgrep
command, the full command line of matching process(es) is printed instead of just the process name.