Process ID using ps aux
I'm a newbie to shell programming. Assuming that I've started a program(eg NetBeans) from my terminal, if I type
ps aux|grep netbeans
I get the the output
pre 18775 1.2 0.0 12524 1972 pts/3 S 20:17 0:00
where 18775 specifies the PID etc of the process.
Then I kill it using
kill 18775.
upon which the NetBeans UI disappears. If I try to get the pid by using the first command, I still get:
pre 19137 0.0 0.0 9136 1068 pts/3 S+ 20:19 0:00 grep --color=auto netbeans
If the process has been killed, why does it still show the above output?
grep is grepping itself. Try something like:
ps aux |grep [n]etbeans
this keeps grep from showing itself in the output
Never use ps
together with grep
.
Rather, use killall netbeans
, pkill netbeans
to kill it. For the process ID pgrep netbeans
.
More on ps and grep.
Because that's the PID for the grep process which is queued up to run after ps aux
.