我是 shell 编程的新手。假设我从终端启动了一个程序(例如 NetBeans),如果我输入
ps aux|grep netbeans
我得到了输出
pre 18775 1.2 0.0 12524 1972 pts/3 S 20:17 0:00
其中 18775 指定进程的 PID 等。
然后我用它杀死它
kill 18775.
NetBeans UI 随即消失。如果我尝试使用第一个命令获取 pid,我仍然会得到:
pre 19137 0.0 0.0 9136 1068 pts/3 S+ 20:19 0:00 grep --color=auto netbeans
如果进程已经被杀死,为什么还显示上述输出?
答案1
grep 正在对自身进行 grep。尝试如下操作:
ps aux |grep [n]etbeans
这使得 grep 不会在输出中显示自己
答案2
答案3
因为这是排队等待运行的 grep 进程的 PID ps aux
。